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

If we really want a loop (why? we only requested one address) I'd use a range:

```
utilAddrs := make([]btcutil.Address, len(addrs))
for i, addr := range addrs {
    utilAddrs[i] = addr.Address()
}
```