Get UUID for filesystems

Use the 'blkid' program to determine the id of the filesystem involved
in the dump.  Store this as a property of the backup node.  This will
be used to cache inode/ctime values for this particular filesystem.
Move decodeTimestamp into 'store' package

This will allow parts other than just restore to be able to decode
with the same code.
Implement ctime cache

The ctime cache stores all of the files (in the directory they are
present in) along with the ctime and data hash.  This allows for files
that don't change to not have to be reread.

The cache also contains an expiration time, which is set randomly
between 2-6 weeks.  Once the time expires, the file will be reread.
This helps spread out the rereading, but does eventually catch
problems.

This implements a 'cache regen' command which can generate the cache
from a previously made back.  It doesn't use the cache yet in the
backups themselves.
cache: Use expire times

Use the expiration time to discard cache entries.
Add 'cache expire' command

The cache expire command will purge extraneous entries from the
database.
Use cache for backups

Use the cache to avoid recomputing hashes for files that haven't been
modified.