Changed models to use read and update

Vechicles should be allowed to set the value they need, and in one step
apply those values to the physical model, to do this having an update
function rather than transform makes a hell of alot of sense.

To do this the vehicle then needs read to be seperated, So implementing
a read function helps in this case

the main thread which deals with actions is used to call actions on
different aspects of the program and it is a bit pointless to have the
controller class. So deleted the controller class, and moved the step
functionality in its main thread
First draft of a tested compass

Got the compass to respond to a few commands
Merge branch 'sensor' into testing
Merge branch 'testing'