reduced asm instrs to unary and binary

Refactored the assembly classes. Instructions now derive from a common base
class that captures the instruction's opcode and result. A unary and binary
subclass is provided for the most common instructions.
got rid of sim dependency

Removed a dependency from the Simulation class which required instructions to
be passed the target signal when being wrapped. Since the assembly instructions
now contain the assigned signals directly, this is obsolete. Cleaner code!