LDBU, LDWU, LDTU, LDOU

Extend the core logic from the LD_ signed operations with a flag to
prevent sign-extending the memory data before moving to the register.
implement LDTH operation

Calls LDTU then "left-shifts" the value of the register.
This prevents the need for another flag on the LD core function.
implement LDA operation

Copy and paste a subset of the core LD function. Needs DRYing.
separate memory module

When creating a new MMIX machine, you pass in an instance of a memory
store.  This allows the same memory to be shared between multiple
machines. The memory store has getter and setter methods for memory
cells.

New utils module holds functions useful to multiple modules.