Various changes: listen, send, gtest.

Apologies for so many changes in one PR:

- node::listen and node::send for setting up a receiving endpoint rather than having publishers be known about before hand.
- gtest and some simple beginning unit tests.
- Adds std::string publish, receive, send methods.
- Some small bug fixes.
- RPC, Listeners, Topic publishers all kept track of in structs and a single map<>.