[WIP Preview] New secure hierarchical deterministic wallet address manager.

This pull request is a work in progress and is being opened as a preview.  It implements a new secure, scalable, hierarchical deterministic wallet address manager.

The following bullets are an overview of what is already supported:
- BIP0032 hierarchical deterministic keys
- BIP0043/BIP0044 multi-account hierarchy
- Strong focus on security:
  - Fully encrypted database including **public** information such as addresses as well as private information such as private keys and scripts needed to redeem pay-to-script-hash transactions
  - Hardened against memory scraping through the use of actively clearing private material from 
memory when locked
  - Different crypto keys used for public, private, and script data
  - Ability for different passphrases for public and private  data
  - Scrypt-based key derivation
  - NaCl-based secretbox cryptography (XSalsa20 and Poly1305)
- Scalable design
  - Multi-tier key design to allow instant password changes regardless of the number of addresses stored
  - Tests have been performed against a sample database with 1 million addresses in it with no degradation in performance
  -  It currently takes about 1.5 seconds per 1000 new addresses generated on commodity hardware
- Import WIF keys
- Import pay-to-script-hash scripts for things such as multi-signature transactions
- Ability to export a watching-only version which does not contain any private key material
- Programmatically detectable errors, including encapsulation of errors from packages it relies on

Things left before it's ready for merge:
- Implement address synchronization capabilities
- Add full test coverage
- Add examples
- Add README.md
This is also one place where I would find it reasonable to use named returns and defer.  If the returned error was non-nil, lock the Manager.  This is much cleaner than sprinking m.lock() all over the code.