Add a couple of utility methods for working with P2SH scripts.
Payment channels: invoke destroyConn on server side even when client requested it.

This allows servers to do something useful when the channel closes normally, like forward the money onwards.
Script.toAddress now can cast to P2SH addresses.
Rewrite the network stack.

Remove Netty entirely, using the new Nio wrapper classes instead

* BitcoinSerializer now uses ByteBuffers directly instead of
  InputStreams.
* TCPNetworkConnection and NetworkConnection interface deleted,
  Peer now extends the abstract class PeerSocketHandler which
  handles deserialization and interfaces with the Nio wrapper
  classes.
* As a part of this, all version message handling has been moved
  to Peer, instead of doing it in TCPNetworkConnection.
* Peer.setMinProtocolVersion() now returns a boolean instead of a
  null/non-null future which holds the now-closing channel.
* Peer.sendMessage (now PeerSocketHandler.sendMessage()) now
  returns void.
* PeerGroup has some significant API changes:
  * removed constructors which take pipeline factories,
    makePipelineFactory, createClientBootstrap
  * Replaced with a setSocketTimeoutMillis method that sets a
    timeout between openConnection() and version/verack exchange.
    (Note that because Peer extends AbstractTimeoutHandler, it has
    useful timeout setters public already).
  * connectTo returns a Peer future, not a ChannelFuture
  * removed peerFromChannelFuture and peerFromChannel
* Peer and PeerGroup Tests have semi-significant rewrites:
  * They use actual TCP connections to localhost
  * The "remote" side is a InboundMessageQueuer, which queues
    inbound messages and allows for writing arbitrary messages.
  * It ignores certain special pings which come from pingAndWait,
    which is used to wait for message processing in the Peer.
  * Removed a broken test in PeerGroupTest that should be reenabled
    if we ever prefer a different version than our minimum version
    again.
  * Removed two duplicate tests in PeerTest (testRun_*Exception)
    which are tested for in badMessage as well.
  * Added a test for peer timeout and large message deserialization

Author:    Matt Corallo <git@bluematt.me>
nonetty: Fix a couple of unit test bugs.

Remove references to netty that still appeared in comments/POM
nonetty: Print fewer stack traces on errors. Handle failure of initial connect call.
Don't allow setting writeTarget twice.
Only do network writes on the handler thread in nio wrappers
Fix reentrance bug when writing in connectionOpened.
Rename networkabstraction package to just net
Move discovery package into net package.
Bug fix to avoid a flake in PeerTest.

There seem to be other cases where unit tests can be flaky with nonetty. More fixes will come later.
Added Mnemonic{Length,Word,Checksum}Exception and tests for each case.
Updated to latest version of BIP-0039.
Improved comment.
Fix memory leak of downloadListener
Check for and reject null event listeners.
Remove usage of deprecated method in PeerTest.
Print peer times using String.format. Resolves issue 495.
Don't print script creation timestamp in Script.toString()