Add a missing lock on BasicKeyChain.getBloomFilter
Fix failing deserialization of wallet with an empty HD chain

Error occurred when deserializing wallet if either internal or external
zero account key chain of this wallet has no keys issued
Fix failing WalletProtobufSerializerTest
Make Transaction comparators compatible with equals
Add Alexykot's test net DNS seed. Tested using Bitcoin Wallet, works fine.
Fix redundant expression in MnemonicCode.
HD Wallets: implement auto upgrade behaviour and refresh the design doc.
Fix a bug because the SendRequest.fee field is written to 0 when SendRequest.emptyWallet is used. Missing tests for this case are added.

Use SendRequest.tx.getFee() to get the fee, rather than reading SendRequest.fee.
Add SendRequest.signInputs flag to allow skipping the signing. It takes a long time and is not needed for when you only want to determine the fee.
Harmonize how BTC values are printed to the log by Wallet.completeTx(). Also, print the value that is emptied.
Add SendRequest.toString().
HD Wallets: do auto upgrade when possible on all inbound codepaths, and make DeterministicUpgradeRequiresPassword extend RuntimeException.
Full mode test generator: use OP_NOP in inputs instead of OP_TRUE to avoid unclean stacks after execution. Additionally, reduce the verbosity of the code somewhat. There's still plenty that could be done to make the code cleaner but .... not today.
Merge remote-tracking branch 'upstream/master'