An attempt at a functional test for the desired ``IFilesystem.reader`` behavior.
Use the service to create the volume.  This should be more realistic.
Add a functional test for the new `Filesystem.snapshots` method (necessary for the other new functional test, as well as for other reasons).
Must construct Snapshots using keyword arguments.
Filesystem.snapshots returns a Deferred.
Execute the snapshot command correctly - with an identifier to assign to the new snapshot.
Test listing the snapshots of the root dataset *and* non-root datasets.
Factor some snapshot listing code out into a separate API for easier re-use elsewhere.  Also change the behavior slightly so that the results are sorted by creation time rather than name.

Previously we considered encoding the creation time in the snapshot name itself but we have not actually done this yet.
The creation property that zfs itself maintains lets us get snapshots in a useful order.
The incremental send code wants to use the most recent snapshot - so having them ordered by creation time helps.
docstring reformatting
Construct an incremental send if there is a common snapshot on which to base it.
Add direct unit tests for _latest_common_snapshot and make it work right.
Documentation fixes for the modified reader interface.
Fix lint error
Add ``snapshots`` to the interface and the in-memory implementation.

Also add a generic interface test for the extremely boring case - which
happens to be the only case the other implementation handles.
Make the in-memory filesystem snapshot listing return a Deferred as it should have before.  Also fix the test to catch this.
Reference a ticket about improving this.
Avoid the weird thing using a bound special method.
some doc improvements
Merge pull request #657 from ClusterHQ/incremental-push-implementation-46

Add support for generating incremental streams when pushing volumes.