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.
I suppose you could reduce the number of times it happens by not deallocating it, but checking the size each time and only free'ing and re-allocing when the size changes. But that wouldn't eliminate the need to alloc here.