[libc++] Remove a bunch of unnecessary type indirections from __tree (#145295)

Most of the diff is replacing `__parent_pointer` with
`__end_node_pointer`. The most interesting diff is that the pointer
aliases are now defined directly inside `__tree` instead of a separate
traits class.

NOKEYCHECK=True
GitOrigin-RevId: d163ab3323495560eb0255ac807da2bf24d3c629
1 file changed