API Change: Added Filesystem.print_snapshot

Print a snapshot differently based on the filesystem
Clean up comments
Clean up Filesystem.auto_snapshot()
API Change: Changed arguments of Filesystem.commit_snapshot()

Instead of specifying a dataset and a full label,
commit_snapshot() now takes a dataset, the interval, and a descriptive
label (usually the date)
New btrfs config format - .btrfs-auto-snap directory

Btrfs snapshots are now configured with the .btrfs-auto-snap directory.

If this directory is present and writable in the root of a subvolume,
that subvolume is consideret enabled for auto-snapshot.  If the
directory is not writable, it is diabled, regardless of it's contents.

Immediate subdirectories of .btrfs-auto-snapshot are the configured
intervals for that subvolume.  If an interval directory exists and is
writable, auto-snapshot:<interval> is enabled.  If the subdirectory is
disabled, so is auto-snapshot:<interval>.  If auto-snapshot is enabled
for a subvolume, but the interval to be snapshotted is not present, it
will be created.