Committing C++ implementation of the simulator.

A lot of the code was similar, though converting their different methods of object oriented programming was a bit tricky. Java certainly hides a lot of stuff from you.