Make scrypt parameters overridable/optional when creating the Manager

Here is a proposal for making the scrypt parameters overridable when the Manager is created in the waddrmgr.Create call.

This removes the package scope variables scryptN, scryptR, scryptP and newSecretKey.

Note that I do not store the scrypt parameters in the Manager structure, but persist them in the database so Load can retrieve them in order to recreate the newSecretKey function on the Manager structure which is needed by the ChangePassphrase function. The scrypt parameters are not needed elsewhere.

I've modeled the optional parameter on Dave Cheneys 'Functional Options' pattern: http://dotgo.sourcegraph.com/post/99643162983/dave-cheney-functional-options, with the difference that the parameter function does not work directly on the Manager structure but on an auxiliary options structure.
To be a little more specific, I think it should be:

```Go
func Create(dbPath string, seed, pubPassphrase, privPassphrase []byte, net *btcnet.Params, config *Options) (*Manager, error) {
```

Then the function does:

```Go
if config == nil {
	config = defaultConfig
}
```

Where `defaultConfig` is a global like:

```Go
var defaultConfig = &Options{
	ScryptN: 262144 , // 2^18
	ScryptR: 8,
	ScryptP: 1,
}
```

Finally, in `Open` the same thing is done where it takes an Options struct pointer and does:

```Go
if config == nil {
	config = defaultConfig
}
```