Hack pipeline

Rough draft of the real-time pipelines.
It is a way for a pipeline to say "I refuse!".  One use case would be if you don't hand enough points into a fitting element, it is better to just drop that packet of info from flowing through than to pass bogus data down or raise an exception.

It also gives you a cute way to do an every-N pipeline

```python
def down_sample_func_factory(N, func):
    counter = -1
    def inner(message, data):
        counter += 1
        if not counter % N:
             return None
        ret func(message, data)

down_slicing_element = PipelineElement(down_sample_func_factory(5, lambda msg, data: (msg, {'sum': data['img'].sum()})))
```
Which we squirt down the pipeline the sum of every 5th image.