Adding the MemoryManager

Adding the MemoryManager and unit tests for it.

Currently the read_opcode_and_args fails due to the placing of a flat
value into memory rather than a wrapped item which contains the
is_opcode method.

All compiles, MemoryObject and Argument classes [additionally, perhaps,
an Opcode class].
Export the RegisterManager

Exporting the RegisterManager so it can be used.