Integrate new wallet address manager package

This pull request 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
- When an existing legacy keystore exists, the `--create` flag will prompt  you for the old private passphrase and automatic convert all old addresses to the new wallet being created

Lexicographical sorting doesn't really make any sense..

This is only called in 2 places, for listreceivedbyaddress (which I don't think needs to be sorted in any particular order) and getactiveaddresses (which currently returns addresses sorted by creation time, followed by all imported addresses which had no ordering).

For comparison, bitcoind wallet uses a std::map which can be iterated over in a deterministic order, but is not ordered by the address string encodings.  The map key is a `CTxDestination`, which is a variant defined by:

```
typedef boost::variant<CNoDestination, CKeyID, CScriptID> CTxDestination;
```

No idea exactly how that's ordered in a map but it's definitely not by address string.