Added some inital work towards reading instructions with an immediate
value.
Added print statement to the Parser for printing out what mnemonic can't
be understood.
Added support for identifying instructions that are assembly directives.
Added a Lexer class which helps break the assembly source into tokens.

Three token types are supported, a comment, a label and an instruction.

The intention is the lexer reads from a string and produces tokens which
can then be converted into the apporitate instruction, label, comment
classes.
Added some scaffolding for parsing command line arguments.

If arguments are now given they are assumed to be filenames and each file
will be assmebled (not currently hooked up). Otherwise, no arguments will
lead to it running some example/tests.
Remove the trailing colon from labels.
Hooked up the assemble method to use the lexer. It now reads the tokens,
skipping comments and then parsing instructions and labels to a strongly
typed representation.
Improved the lexer to take into account lines with only white-space.

Additionally, handle the case where there is only white-space leading
up to a comment. This prevents the Next() method returning a instruction
token that is nothing but white-space.
Added a lot of instruction defintions.