Parsec parser for HASM: early draft
HASM TODO
Cleaned-up X86Opcodes

Now assembly encoder function match on a list of operands, not on a
fixed count of operands:
- encoder :: OpOperand -> OpOperand -> [Word8]
+ encoder :: [OpOperand] -> [Word8]

Now an empty list is returned if assembling a  specific instruction
failed, without raising an error.
HasmParse.hs compilable draft:

e.g. ".l1: mov %eax, %ebx\n"