Eliminate the duplicated parentTransaction field from TransactionInput/Output.
Fix duplicateDetached
Pluggable signers: simple local KeyBag signer

Introduced pluggable signers notion. Instances of
TransactionSigner could be added into the wallet, so that they subsequently
applied to transaction to complete it.
Existing signing code (Transaction.signInputs) was refactored into
LocalTransactionSigner, which is always implicitly added to any wallet.

Related pull request: #157
PeerFilterProvider methods are called with the lock already held, so just assert on that instead of locking again.
Add method to derive new keys when queried by path

Added DeterministicKeyChain.getKeyByPath(List, boolean) allowing to
specify whether to create non-existing key or not
Revert "PeerFilterProvider methods are called with the lock already held, so just assert on that instead of locking again."

This reverts commit e888807dfd233f3500755a7aeb1f263c9ae65e4b.
Fix some thread safety issues with Bloom filtering.

This hasn't shown up in any bug reports, I just spotted them through reading the code.
Take out the redundant SigHashType parameter to wallet.signTransaction.

In the end the API evolved in such a way that changing this param isn't that useful. To do contracts you tend to work with transactions directly, and a Wallet subclass that needs to do special signing by default can override the signing engine used.
Fix typo in comment.
Make RedeemData to sort keys.

So that these keys are stored in the same order they appear in redeem script. That would make easier for signers to locate signature position in scriptSig.
HDW: Create/activate a new HD chain when a wallet is constructed if the passed KeyChainGroup is empty. This means you can back up a wallet immediately after construction even before you request a key. Thanks to Andreas for the suggestion.
HDW: Add a getKeyByPath() method to wallet, and (experimental) sanity check precomputed keys before they're returned by the wallet API to guard against the potential of a bitflip in either the stored pubkey bytes, or the ECC precomputed tables. The chance of such a bit flip is small but such flips HAVE been seen in the wild against other bitcoin implementations, so it could happen to a bitcoinj user too. The consequences can be catastrophic (destroyed money) so best to try and do what we can.
HDW: Add an AUTHENTICATION key purpose that's mapped to the internal chain.
HDUtils: less insistence on immutable params
Remove TransactionConfidence.workDone. It doesn't seem useful and was somehow buggy.
Fix DeterministicKeyChainTest failing on Windows

Git changes line endings in files to CR+LF on Windows by default, while
protobuf always uses LF. That makes serialization tests fail.
Handle getting a null from getNewParser gracefully