Implemented command line parsing in simulator

This is a checkpoint, I'm going to remove some of the options in next
commit.
Simulator now calls assembler

Simulator works in symbolic mode. Assembler produces functors that bind
simulator methods directly, instead of communicating through raw
opcodes.