Controller can parse files into simulation objects

These objects will be used to store what happens in the simulation over
time, and they will never be removed from the queue.  This means that
order of addition to the queue matters, and the simulation will be
reversible, by just iterating forwards and backwards through the queue.