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
Convert waddrmgr to new walletdb package.

This commit converts the waddrmgr package to use the new walletdb package
semantics.

Since waddrmgr no longer controls the database, it is unable to make a
copy of the database and return it as the old ExportWatchingOnly function
required.  As a result, it has been renamed to ConvertToWatchingOnly and
it now modifies the namespace provided to it.  The idea is that the caller
which does control the database can now make a copy of the database, get
the waddrmgr namespace in the database copy and invoke the new function
to modify it.  This also works well with other packages that might also
need to make modifications for watching-only mode.

In addition, the following changes are made:

- All places that worked with database paths now work with the
  walletdb.Namespace interface
- The managerTx code is replaced to use the walletdb.Tx interface
- The code which checks if the manager already exists is updated to work
  with the walletdb.Namespace interface
- The LatestDbVersion constant is now LatestMgrVersion since it no longer
  controls the database
Move keystore to legacy directory.
Switch to new waddrmgr package

This commit converts the wallet to use the new secure hierarchical
deterministic wallet address manager package.

The following is an overview of modified functionality:

- The wallet must now be created before starting the executable
- A new flag --create has been added to create the new wallet using wizard
  style question and answer prompts
- Starting the process without an existing wallet will instruct now
  display a message to run it with --create
- Providing the --create flag with an existing wallet will simply show an
  error and return
Add conversion from legacy txstore if it exists.
Integrate walletdb and updated waddrmgr.

This commit converts the wallet to use the new walletdb package as well as
the updated version of the secure hierarchical deterministic wallet
address manager which uses the new namespace feature provided by waleltdb.
Address some review items.

- Distinguish between missing address and database error
- Wrap help text for wallet generation seed
- Don't rescan if there are no addresses
- Update --create message for legacy wallet import
Turn echo off when reading passwords