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.