Add test for decltype
Add push_type and pull_type traits classes

This enables users to make use of the various pipelining bits
without having to typedef item_type
Use push_type and pull_type traits classes in library and tests
Merge branch 'push_type'
join.h: Use a pointer-to-pointer instead of reference-to-pointer
Add node_name.cpp with extract_pipe_class_name
Add extract_pipe_name
Set node name using extract_pipe_name if it is not set
Remove set_name calls
Fix extract_pipe_class_name bug on namespaced non-template names
Add ut-node_name
ut-node_name: Add test cases from output produced by MSVC
node_name.cpp: Handle pretty printed typenames of MSVC
Merge branch 'node_name'
ut-pipelining reverse: Add full plot to debug log
node_map::add_relation: Check and discard duplicate edges
node_map::out_degree: Use equal_range
Add node_map::out_degree(id)
factory_helpers: Get rid of unnecessary inline modifier
Remove the need to call add_push_destination in the simple case