WAK: add note in javadoc about missing feature.
Rewrite how peer group manages connections and its internal thread:

- No longer uses Guava services, the change is source compatible but the two-step API is no longer needed

- Now has a dedicated ScheduledExecutorService as its core service thread, so we can schedule jobs for the future instead of using sleeps.

- Connection code was rewritten to be easier to follow (at least I think so).

The goal here is to generalise the peer group thread so it can do more things.
Don't hold the peergroup lock whilst calculating bloom filters, and run on the executor thread. Move responsibility for deduplication into recalculateFastCatchupAndFilter().
Replace peerGroup.startAsync/awaitRunning with start() and awaitTerminated with stop().
PeerGroup: Reimplement pinging to use the executor. New code is simpler and more correct.
TestWithPeerGroup: don't stopAsync if the peergroup isn't running and update the class description.
ECKey/DeterministicKey: replace ECPoint with a LazyECPoint wrapper that doesn't delays parsing of key bytes into a key structure until it's needed. The process of decoding keys from the wallet previously involved decompressing/recompressing them which was taking ~seconds for hundreds of keys on Dalvik/2012 era Androids. After this patch loading such a wallet takes a few hundred milliseconds, most of which is spent inside RIPEMD160.
Slightly different attempt to fix thread safety issue in PeerGroup to in #278 - make connectTo always locked. It used to be that we couldn't do this but there are no comments reminding me why not, and unit tests + wallettemplate seem happy with it being locked, so I think changes in the network code since then have probably removed this issue.
Sha256Hash: remark that it takes ownership of the byte array.
Bloom filtering: check for malformed Merkle trees. Resolves issue 593. Thanks to Pieter Wiulle.
More attempts to fix build flakes.
Don't spam the log with setting key rotation time while loading wallets. Instead, print it with the wallet dump.
Fix potential race condition when checking keychain for key rotation time.
Consistently use version 2.9.1 of maven-javadoc-plugin.
Build bitcoinj-examples and bitcoinj-tools with Java 8. Bitcoinj-core and orchid still requires Java 6 so it can run on Android.
Wallet-template is now a proper sub-project. This reduces the risk for breaking the wallet-template build.
Configure Travis to compile everything using Java 8, then compile orchid and bitcoinj-core using Java 6.
Update README.md to mention Java 8.