New Type System (Unfinished)

I'm in the process of replacing the use of std.varient with a new
interface based system and MemoryManager has been wiped (as it will need
to be entirely re-enginered