wrote the instruction decoder

The decoder is designed to read an entire instruction (with any attendant
displacements), and decode it into an `Instruction` instance. This may
necessitate some fairly involved caching later, but it also makes it easier
to inspect and manipulate DCPU code.