Use btcjson.ErrWallet for createencryptedwallet.

If an unexpected error is encounted when creating the encrypted
wallet, rather than using btcjson.ErrInternal, wrap the error message
using btcjson.ErrWallet.Code.
Prevent full handshake rescans on btcd reconnect.

If a rescan fails (for example, due to a disconnected btcd) in the
btcd handshake, the last block height from a rescanprogress
notification should be used for the next rescan job on next wallet
connect.  Previously, this rescan would always start at the earliest
block height for any wallet address if the transaction store could not
be read at wallet startup.  This change unsets the boolean flag which
would cause a full rescan at next connect when a rescan progress
notification is received and a partial sync height is written.

Fixes #87.
No full rescans after rescan completion.

If the rescan finishes before any progress notifications have been
received, also unset the need to perform a full rescan next btcd
reconnect.
go fmt.
Fix rescans across wallet process restarts.

This change immediately writes a new empty transaction store out to
disk if the old one could not be read.  Since old transaction store
versions are not read in at start, and were previously not written out
until new transaction history was received, it was possible that a
full rescan started and finished without ever marking a synced tx
history for the next wallet start.
Use t.Errorf for test formatting directives.
Remove closure over a range iterator.
Do not error opening simnet wallets.