There is nothing here that uses the config file path.
Add `remote_snapshots` to the interface and the in-memory implementation (`IFilesystem`).
More useful in-memory implementation of `IFilesystem.snapshots`.
Add a helper to check for the existence of the filesystem.  Use that to handle the no-snapshots case.
Do incremental pushes.

Change push to first retrieve the snapshots that exist remotely.
Supply this information to the local filesystem reader so it can construct an incremental stream.
Update the filesystem writer so it is capable of receiving incremental streams into the filesystem.
Push has become asynchronous - so propagate Deferred-handling code up the stack from it.
merge master
Debug gunk
Merge remote-tracking branch 'origin/master' into integrate-incremental-push-46
Note that we will do incremental transfers when possible.
Allow for the default of ``None``.
Add missing API docs
Bytes.
This area is kind of TODOish.
move imports to the right place
It became unnecessary to access the outer self.  Use the conventional name instead.
Fix lint errors and remove debug prints.
Merge remote-tracking branch 'origin/master' into integrate-incremental-push-46
Merge pull request #669 from ClusterHQ/integrate-incremental-push-46

Integrate incremental push