filemanip: clone options hash before modifying.

If we want to change the contents of the option hash, we shouldn't modify
other users' copies of it.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Use a cleaner method to store additional files.

The git transactions had acquired a lot of in-depth knowledge about the
files that consisted of a database in order to store these additional files
in git as well.  Make the transaction code learn about a generic list of
additional files to be added and move the database-specific knowledge to the
database code, where it belongs.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Add tests for the Singleton metaclass.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Document the DatabaseVersion methods.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Update version number to version 4.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Update version number to v5~pre0.

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