MockTransactionBroadcast: add to wallet.
Payment channels: make ProtobufParser use finer grained, cycle detecting locking.
Payment channels: add payment acks.

Add a new PAYMENT_ACK message to the protocol. Make incrementPayment return a future that completes when the server has acknowledge the balance increase.

Also, prevent users from overlapping multiple increase payment requests.

This resolves race conditions that can occur when the billed-for activity is asynchronous to the protocol in which the micropayment protocol is embedded. In this case, it was previously impossible to know when the async activity could be resumed as it would otherwise race with the process of the server checking the payment signature and updating the balance. Most applications of micropayments will use a single protocol that has been extended with an embedding, and thus this is not an issue. However in some rare applications the payment process may run alongside the existing protocol rather than inside it. In this case, payment acks should be used for synchronization.
Fix RegTestParams subsidy decrease block count (150)
Update script json tests from upstream
Fix race condition in NioWrapperTest testcase (resolves issue 474)
Fix b61 creation (why was it written this way in the first place?)
Payment channels: extract an IPaymentChannelClient interface for the basic PaymentChannelClient operations.

This is useful for code that wants to make micropayments in a generic fashion, whilst being independent of whether the implementation is in-process using a local wallet, or perhaps running elsewhere (like inside an Android wallet app with communication happening using Binder RPC).
Fix signedness issue reading scripts (resolves issue 478)
Wallet template: couple of misc tweaks
TransactionBroadcast: refactor
WalletTool: allow skipping of mandatory extensions.

This allows it to read MultiBit wallets.
Add a builder function to InventoryMessage
Request 11 peers by default in wallet-template
Tweak broadcast logic again.

 Now broadcast to half the connected peers immediately, and wait until half of the rest (i.e. a quarter) have announced the tx. This should give some robustness against a random subset of peers silently swallowing transactions.
Fix yet another dumb script bug (resolves issue 479)
Cleanup: use varargs methods in slf4j rather than new Object[]{}
Wallet: record the timestamp of the last block seen.
Wallet: improved risk analysis.

Extract out the "is time locked" risk analysis code to a pluggable implementation.
Ensure the default implementation has 100% test coverage.
Consider finality, not merely the presence of a lock time, when judging risk.
Don't consider a tx risky if it would become final in the next  block.
Do not consider self-created transactions risky.
Payment channels: rename "close" to "settle".

The previous overloading of the term "close" to mean both settlement of the channel (broadcast of the final payment tx) and terminating/cleaning up the underlying network connection was very confusing and made the code harder to work with. The notion of "closing" a protocol that is often embedded inside others isn't really well defined, so there's perhaps more work to do here, but this change makes the code easier to follow and is basically a big pile of no-ops.