Set a name on the pipesorter in ut-pipelining sort.
Add factory_base::init_sub_node.

This lets factories that instantiate multiple nodes (such as the
sort_factory which instantiates each phase of sorting as a different
node) handle name setting and breadcrumbs properly.
Make pipesort() use name() instead of breadcrumb() to set sorter name.
Refactor sorter factories to use init_sub_node.

This also gathers the construct() method in one CRTP base class rather
than having two almost identical implementations lying around.
Merge branch 'issue_41'. Fixes #41.