New implementation from scratch underway.

Implemented basic types.
Reused tests, macros, and a bit of template metaprogramming helpers.
Setup Member and Method implementors; and TypeDataBuilder.

- changed the storage type to a vector of pointers. Better cache coherency, polymorphic type, and the unordered_map can map to indices rather than an iterator, so no invalidation.
- Moved Member::GetSize() to CPP to avoid dereferencing undefined type.