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
Fix X509UtilsTest ended up in wrong package.
Rename tool for the payment protocol. It was not obvious from the name that it has a main method.
Move verification of payment requests into new PaymentProtocol class.
Add signing of payment requests to PaymentProtocol class.
Unit tests for signing and verifying both valid and expired payment requests.
Move BIP71 MIME types to PaymentProtocol class.
Re-add verifyPki method to PaymentSession to avoid needless API churn.
Add (de)serialization support for reject messages.
WalletTool fix for Guava 16 changes.
Add a toString for reject messages.
Add a double spending test program
Deprecate Script.isSentToP2SH() as it did the same thing as isPayToScriptHash.
Adjust MIN_NONDUST_OUTPUT down to 546 only for risk analysis. This is required because we start seeing more and more transactions using the new fee rules introduced with Bitcoin Core 0.9.