Integrate incremental push

This is the last part of #46.  Thus, it actually fixes #46.

It depends on #658.  Review that first.

This change takes the two pieces built previously, ability to discover what snapshots exist remotely and ability to generate incremental data streams given information about remote snapshots and ties them together with the push implementation.  It makes push retrieve the snapshots and feed them into the data stream generator.

Top imports.