* add the NodeBaseInterface and impl NodeBase
* refactor rclcpp to use NodeBaseInterface
* triggering a guard condition is not const
* remove unnecessary pure virtual destructor
* remove unused private member, style
* create NodeTopics interface, refactor pub/sub
* add convenience functions to fix API breaks
* fix compilation errors from NodeTopics refactor
* move "Event" based exceptions to exceptions.hpp
* add the NodeGraphInterface and related API's
* update node and graph_listener to use NodeGraph API
* initialize node_topics_ and node_graph_ in Node
* remove methods from Node and reorganize the order
the removed methods are really low level and still
available via their respective Node*Interface class
* add the NodeServices API and implementation
* add the NodeParameters API and refactor Node
* mixups
* fixup NodeParameters constructor
* added NodeTimers API and refactor Node
* make new create_publisher and create_subscription free template functions
* fixup
* fixup
* fixup
* fixup share pointer to node in any_executable
* free env value before throwing on Windows
* uncrustify and cpplint
* address constness issues
* do not store the topic name as a std::string in subscription
* fixes to support const char * topic name
* fix incomplete type specification, which fails on Windows
* refactor after rebase from type support changes
* fixup Windows build
* fix template issues on Windows
* uncrustify
* remove the unnecessary callback group argument from the add_publisher func
* remove unnecessary using = directive
* do not store node name in C++
* fix client and service creation in Node constructor
* fix include orders