add a simulation high level object and make serialsimulation not inherit...

... from roomba


- There is a new simulator class, wanted to call it simulation but we have a model with that name.  running on a thread.  So moving of the world and robots runs independently of the orders we get in the roomba interface(as it should be). This makes impossible to achieve some small movements. I am thinking on how to solve this.

- There is a new RobotSimulation class. Which is independent of the details of Roomba. 

- These 2 classes plus World and Console(poor's man logger) live in lib/simulation . I am thinking on moving them to a different gem. But at this moment is easier to modify everything in this project.

- RoombaSerialSimulation does not inherit from Roomba, and it can not touch the robot's positon directly. It's job is to get the basic commands of Roomba and calculate its velocity/turning, etc. Robot simulation and world will decide how the physics move Roomba.

Tests pass
The example of the readme works but end up in a different point. Must investigate this also.