Extended assembler to allow fabricated instructions

I've tried to add fabricated instructions such as "halt", "ret", "nop" and instructions with implicit operands such as "call" and "ld". I had to add quite a few more encoding into the assembler to cover these, so I also tried to make the assembler more extendable in that regard.

Let me know your thoughts on this. 
Ah nice, I was looking for a way to enforce this with pattern matching.

Although I do want the last error that occurs in this case, since it is the most general form. Do you see any problems with this?
```haskell
    ([]. errs) -> Left $ last errs
```