dependencies tracking part I

Big re-org of the XEntity and XternDef code.
- XEntity is now heap allocated and created only by the XternDef code
- XternDef no longer has |loaded| and |needed| but a pointer to its
matching XEntity
- XEntity has tracks its dependencies as vector of pointers to other
entities.
dependencies tracking part II

Now we have the deps reordering that is blocking us from the next set of
plx code.

This is mostly a naive attempt of doing what a human would do, which is
"move shit up" until it compiles a few times (5 times) until giving up.
adding plx::To

no tests on plx::To yet

This was blocked on the dependency ordering because of the OverflowKind
was being put at the bottom and the Overflow exception at the top.
index.plex was missing

from previous commit.
basic testing for plx::To

more tests to come.