Add default ports to activities

Part of an implementation to allow tasks to be used in pipelines
Allow tasks and activities to be piped

New | operator replace >> operator between ports.  >> operator for ports is
kept for backwards compatibility.

Activities now have a default input and output port. If these are specified
then a task can included in a chain of tasks connected by |.

If an activity is included in a chain, a task is created for it.

So, we can now have:
DoIt = GetWebPage | XPath('/jobids/jobid') | JoinStringList

DoIt is now a Pipeline object, which can be used much as task.
e.g.
DoIt.extendUnusedInputs()
flow.output.MyOutput = DoIt.output.concatenated

All documentation and examples updated to use | operator