SMPL on steroids

- almost finished code generation

Left TODO:
- implement pfor
- keep track of number of locks and spawned threads
- properly indent output code (recursive tabbing function that keeps
track of the indentation level that it was called at)