Refactor backend selection.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Refactor transaction types into a list.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Support SHA-384 and SHA-512.

Turn the SHA256Transaction store into a HashTransactionStore and support
SHA-384 and SHA-512, which provide better performance on 64-bit systems.
Don't support SHA-224 since it is weaker and is only useful where the hash
would be truncated anyway.

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