Refactoring: event.{every -> whenever}

event.every is kept as an alias.

Inspired by URBI syntax.
Support for predicate to create events

Those predicates (function or lambda returning a boolean) *must* take a single argument, the robot instance.
Add support for 'in' operator for robot.poses