Initial commit of pyrobots 2

Large overhaul of the library.
Updated AUTHORS
Made the basics of pyrobots2 working. Cf testing/base.py
Several more fixes. Basic functions of pyRanger now work
Correctly propagate ActionCancelled signal to sub-actions
Clean up finished actions for the list of future and better handle too many futures (via exception)
Introduce abstract method wait_for_state_update in GenericRobot

...and use it to wait for events
Minor fix/improvements to helper/position
Minor fix/improvements to helper/enum
Expose robot.sleep as active wait replacement for time.sleep
Added some introspection/debugging tool to know what/where are the running tasks
Several important fixes for futures

- call cancel_all when closing the robot
- do not override __repr__ in RobotAction (so that we can effectively run tasks in the backgroud from the REPL)
- correctely detect completed futures
Added a little helpers to print logger hierarchy
In dummy mode, wait a bit between event firing

Also, in dummy mode, set log level to DEBUG by default
Add the concept of 'InvalidFrame' besides 'UnknownFrame'
Added helper function to compute the angular distance between two angles
Make sure that ActionCancel/ActionPaused signals are propagated, also from the logger
Converted ColorizingLogHandler into ConcurrentColorizingLogHandler

The new version requires no locking on the 'client' side (the code calling logger.<...>(msg)) and
relies on a separate thread for actual output. This helps with our 'Signaling' threads that can trigger
exceptions at any time.
[events] 'on(...)' is now one shot, add 'every(...)' for multi-shot events
Cosmetic