Feature/physics

This is the same branch from my previous PR but with one extra commit.
I do this so you can review easier and also you can choose if you want this last commit or not.

The last commit is all about physics. 
Use more physics sound calculations instead of hand-made calculations and create a bunch of classes to support those. 
These classes may seem overkill ATM but I think we will build over them soon so is worthy.
In fact and I am the man of the thousand gems, these should go to a physics engine gem, the rest of the simulator to a robot simulation gem and the rest roomba.
The result for the example of the README is the same in this PR and the other PR.

We need good name for the new gems if we make them.