Add support for xz compression.

This support isn't available in newfol proper, but filemanip does support
it.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Use an SHA-256 check for xz compression.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Implement lzma compression.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Test what files are checked in to git.

As well as testing that all files are checked into git when using git
transactions, test that the files actually checked in are exactly the
expected ones.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add tests for upgrading databases.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Verify that new database pass validation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Verify that new databases meet strict validation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add additional database tests.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add a version field for compression type.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add tests for compression version.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add support for compression automatically based on version.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add the ability to upgrade to any given version.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add more database format tests.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Prefer JSON over pickle.

This allows for better diffing, and it also makes it possible to load
untrusted data from the dtb file if that becomes necessary.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Merge branch 'master' into peter