Begin work on memory representation

The classes `IMemory` and `Memory` lay the ground for access to a memory system
which is modified by a processor.

Program data is stored in memory. Memory is stored in an array of Words and is
byte addressed.