implementing delete in terms of event streams

* xs is a stream of events resulting from getting a record by id from mongo
* ys is xs flatMapped to the result of a call to mongo to determine if the record is removable. Retry failure up to 10 times.
* zs is xs zipped with ys. Important to note is that the events coming through zs are pairs of events matched up from xs and ys. This means that we won't process anything until we get a result from the ys flatMap.