Implement new namespaced db package named walletdb.

This commit implements a new namespaced db package which  is intended to
be used be wallet and any sub-packages as its data storage mechanism.

- Key/value store
- Namespace support
- Allows multiple packages to have their own area in the database without
  worrying about conflicts
- Read-only and read-write transactions with both manual and managed modes
- Nested buckets
- Supports registration of backend databases
- Comprehensive test coverage
Add full test coverage suite for walletdb package.
Add examples for walletdb usage.
Add README.md for walletdb and bdb driver.
Add tests for new encryption API on the manager

100% coverage on selectCryptoKey, Encrypt, Decrypt.
Cleanup recent encrypt/decrypt test additions.

This commit cleans up the recent test addition for testing the positive
and negative error paths of the Encrypt and Decrypt functions.

In particular:

- Add comments to all new functions
- Close the manager before trying to delete the file which is otherwise in
  use
- Rename the temp prefix since these are not pool tests
- Rename setUp to setupManager to make it a bit more explicit what it's
  doing