Motors Refactor

Ahoy !

Now with OpenCV stuff merged on the develop branch - the branch I'm working with is closer to develop.
The largest amount of change on it that is different has to do with Motors and MotorControllers.

Motors in the past always required a direct reference to a controller.  

I don't think this is a very good design.

I think the preferred design would be to utilize mrl's excellent pub/sub features.

Pros

  • Less brittle - more robust 
  • No endless loop attachment
  • attach methods are idempotent
  • Fewer NPEs - fewer checks for NPEs
  • Clean adding or removing controllers
  • Multiple controller capable
  • New Broadcast({method}) allows by-pass of internal queues
  • Works remotely or locally

Cons

hmm.. can't think of much

Please take a look at the "draft" pr.
There are some other non-related changes - but the bulk of it is Motor related

https://github.com/MyRobotLab/myrobotlab/pull/759/files