Added the object writer classes.

It handles writing out DLX (machine code files).
Specially, it is responsible for printing the .abs header and and .start
footer and deals with formatting the numbers.

The object format is readable text where the 'machine code' is output as
hexdecimal printable characters.
Hooked up the assmebler to the object writer.

At the moment it has the following limitations:
- only the instructions are written out (i.e no .space or .word directives)
- the start address isn't written out
- it is assuming all the data is written out one instruction after another.
  That is to say that there are no gaps and it is contiguous.
evaluate(LongImmediate) now handles if following a symbol through a symbol.
The start address is now looked up in the symbol table.