Added support for executors

This pull request replaces the current Node.h with a larger interface which includes executors, groups, timers, and some other common utilities which are required to implement the `ros1_like` examples in https://github.com/ros2/examples/pull/1.
`is_shutting_down` isn't that nice in my opinion because it implies an intermediate state between shutdown and running which may or may not be the case when called, rospy uses `rospy.is_shutdown` and you have to loop on the negative, i.e. `while (!rclcpp::is_shutdown())`. We could do `while (rclcpp::not_shutdown)` or `while (rclcpp::is_not_shutdown)`, both of which read a little better.