Overload Script.getToAddress() with a variant that tries harder to determine a destination address.

I ended up duplicating this piece of code several times, so I thought it may be useful to have it in the framework.

Includes tests.
Signers: map derivation paths to scriptPubKeys..

.. instead of TransactionInput objects since latter are mutable.
Formatting and parsing of monetary values with non-arabic digits.
Configure CoinFormat with values from a Locale.
Remove debug output that slipped in with the last commit.
Better warning messages for the block store rollback code. It was printing exceptions for replays and new wallets.
Add testnet checkpoints for WalletTemplate.
Fix JDK8 doclint range to work with JDK7
Fix JDK8 doclint range to work with JDK7 in Orchid
Improved README to use Markdown and provide additional instructions for people getting started
Peer: Add a version handshake future.
Support for applications recording exchange rate that was valid when transaction was sent. Use the new SendRequest.exchangeRate register.

Includes a test.
Orchid: fix infinite task creation loop when shutting down
Orchid: better thread tracking

also, fix race condition in closing circuits on shutdown
Orchid: document an issue with pending circuits on shutdown
Orchid: refactor thread pool creation
Orchid: narrower locking
Orchid: typo
Rename CoinFormat to MonetaryFormat, now that it can deal with Coin and Fiat mostly the same way.
WalletTemplate: use Tor by default on testnet.