Merge pull request #20 from spotify/dano/packaging

modernize pom & release workflow
remove debug/dead code
[maven-release-plugin] prepare release v0.3.0
[maven-release-plugin] prepare for next development iteration
fix spelling errors
Add end-to-end server/client req/rep test

Unfortunately this test seems to indicate that something is broken,
potentially in the ZMTP20Codec interop code.
add session toString method
stricter and more descriptive end-to-end tests
fix incorrect javadoc
fix bug in CodecBase

decode() must return null if any of the data in the buffer has been
consumed and state changed. Otherwise decode will be called again with
the same buffer contents, but with a changed state. This caused the
interop to break.

The assumption is now that if inputOutput returns non-null, then data
has been consumed and state has changed. Thus we return null and
let the ReplayingDecoder call decode() again with the potentially
remaining data instead of looping over it ourselves.

This feels quite fragile. There would seem to be some opportunity for
simplification here.
finish handshake before propagating connected evt

Ensure that the handshake is completed before propagating the connected
event upstream. Otherwise handlers upstream might be confused by
handshake traffic.
session: add convenience constuctor
zmtp/2.0: require socket type

Also indicate that socket type may be null.
[maven-release-plugin] prepare release v0.3.1
[maven-release-plugin] prepare for next development iteration