Add instruction: SEP
Remove unreachable code

At least if we can assume that the int variables representing data bytes
are always in range.  I don't know where this should be enforced yet.
Add instructions: OR, ORI
Refactor the GUI Memory implementation into smaller pieces

New classes:

- ArrayMemory: Memory backed by array, always beginning at the zero
address.

- MemoryMapper: Combine multiple Memory instances address range
information into a common address space. Handles translation of offsets.

- MemoryWriteProtector: Wrap a Memory instance to make it read-only.

- Utils: contains a static method for loading a Memory from a string of
hex digits, among other things.
Tweak class attributes and reformat some code
Add instruction: IDL
Add instruction unit tests: REQ, SEQ
Add instruction unit tests: GLO, GHI, PLO, PHI, LDI