PeerGroup: bugfixes to backoff.

1) Do the wait even on the exception path so if discoverPeers throws, we don't bypass the sleep.
2) Move some field accesses inside the lock.

Resolves issue 527.
WalletTool: automatically use localhost in regtest mode.
PeerGroup: tweak global backoff to be faster.
Consistently mark parent as nullable in TransactionOutput
More mock clock conversions, to avoid failures when running test cases independently.

Probably we should be injecting a mock Clock class so it goes away at the end of each test, but this would complicate the API somewhat.
Fix unit test broken by less aggressive backoff time.
Cheap test to see if an input stream is a wallet.
Extract getDisplayNameFromCertificate() into new X509Utils class. Also joins PkiVerificationData.name and .orgName into one .displayName. Adds tests using client/smime certificates of mine.
Extract loading of X.509 trust stores to TrustStoreLoader.
Move X509Utils/TrustStoreLoader, add JavaDocs, and add back a parameter to allow location data to be included in the display name.
Payment protocol: add PaymentSession.getNetworkParameters method.
TransactionOutput: add equals/hashcode/duplicateDetached methods.
TransactionInput: verify(): don't crash if the given output has no parent. Clears a static analysis warning.
Implement equals/hashCode for ECDSA/TransactionSignature, and make them immutable.

Change the canonicalisation method to return a canonicalised copy, if required, and change the name to force users to notice that it's no longer mutating the object.

Resolves issue 544.
Upgrade to Bouncy Castle 1.50. Patch from Peter Dettman. Resolves issue 497.
Add Peter Dettman to the AUTHORS file.
Upgrade to Guava 16.0.1.

Resolves issue 375.
ECKey: switch away from the deprecated DERInteger class.
Fix compatibility with Java 6.
Add support for creating multisig inputs scripts that redeem P2SH outputs