A few more pieces around the edges of Mongo joins.

Hmm, after reading this description, `Duplicate` won't really work. 

This looks fine to me, but in the evaluator we should probably protect `Read`s from being the first element (by copying the collection or something). i.e. make it so that any workflow cannot possibly overwrite a `Read`. But I suppose we can worry about that later.