When throwing InsufficientMoneyException, the amount of satoshis missing is required. When the server requests too much value, it is stored so that implementations of the client has access to it.
Adding support for processing PaymentRequests.
Allow Bitcoin URI's that don't have any address component if the r= payment protocol param is there.
Payment protocol: Make PaymentSession use a global thread pool that uses daemon threads.

Fixes a 60 second hang that could occur in wallet-tool once the send request was processed. Fixing this revealed another bug - WalletTool was depending on this VM shutdown delay caused by the worker pool timeout, so clean up the code and replace with a blocking get of the future.

Also support the --offline and --password flags when using the payment protocol.
Enable bloom filtering.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	core/src/test/java/com/google/dogecoin/uri/BitcoinURITest.java
	tools/src/main/java/com/google/dogecoin/tools/WalletTool.java
Fix checkpoints