Wallet: Minor nullity annotation and param genericity tweaks.
PeerGroup/Wallet: give the wallet a reference to a transaction broadcaster, so it can make its own transactions and broadcast them outside the context of a user initiated spend.

Later, we can change the mechanism used to broadcast pending transactions so the wallet does that itself.
Wallet: allow SendRequests to override the default coin selector.
PeerGroupTest: Fix a race.
Wallet: support for key rotation.

Key rotation allows you to specify a timestamp, and any money controlled by any keys created before that time will be automatically respent to keys created after it.
Move verifier XML around.
Remove verifier from examples/pom.xml, it requires us to wait for reproducible build support to land.
Sync script test files with bitcoin upstream.
Add a tool to watch for broadcasts of rotation transactions.
Add test-case for manually-added transactions that appear in blocks
Add payment channel server native event handler wrappers
Make Protobuf{Server,Client} more generic.
Abstract out SelectionKey processing and logic from NioServer.
Fix typo
Mark receivePending(List<Tx> dependencies) @Nullable
Implement some (de)serialization (so we can roundtrip msgs in test)

Implements deserialization for getblocks/getheaders and supports
FilteredBlock entries in ListMessage (for getdata).
Implements serialization for FilteredBlock, HeadersMessage, and
PartialMerkleTree.
Implement ListMessage.equals()
Unimplemented bitcoinSerializeToStream -> log error, not debug
Clarify PeerEventListener JavaDocs a bit
MessageWriteTarget->interface, writeBytes throws IOException