Proof of the concept context-switching pipeline mock-up

- This uses a set of operators connected with queues, and uses
  swapcontext to allow writing operators as coroutines.  This leads to
  a very natural way of writing the operators--all the magic is
  encapsulated in the next () and push () calls that handle queue I/O.

- While this has a fair overhead for queue-less coroutines (such that
  every value produced implies a context switch), even moderately
  small queues offset the penalty.  The current choice of 64 elements
  is actually rather large, most of the benefit is already visible
  with 16 or even 8 elements.