Add tpie/pipelining/parallel/flush.h
In parallel, call flush() on the worker if maintain_order is specified

We check using SFINAE whether the first node in the pipeline has a
flush() method.

If maintain_order is specified, we call flush() on the worker pipeline
before sending the results back to the main thread.
We throw an exception if maintain_order is specified and the
first node in the worker pipeline does not implement flush().
ut-pipelining: Implement multiplicative_inverter_type::flush
Document the need to implement flush()
Add ut-pipelining parallel_ordered_2 test