Exchange payment processor ids during handshake

Make peers communicate their payment processor ids during the handshake
together with the refund transaction.  Rename exchanged messages
accordingly.

Also, fix a bug on PeerHandshakeAccepted: add a missing hashCode method.
Use Both[T] in Exchange
Introduce OngoingExchange class
Move PeerConnection out of PeerInfo
Make Amounts a component of Exchange
Make Exchange and related classes covariant
Use trait inheritance instead of composition for OngoingExchange