truncate incoming messages + slice payloads

* Add a size limit to the message parser. It will
  now discard frames for messages that exceed the
  specified limit. ZMTPIncomingMessage indicates
  a truncated message using a flag.

* Make parsing errors checked exceptions.

* Payloads are sliced out of the incoming buffer
  instead of copied in order to generate less
  garbage.

* More convenient frame and message factoy
  methods.

* Formatted code.

Change-Id: If45761aab710e90d7c71064f688c80d18a43d5a3
Reviewed-on: https://gerrit.spotify.net/gerrit/95966
TC-Compile-And-Test: Team City <teamcity@spotify.com>
Reviewed-by: Staffan Gimåker <staffan@spotify.com>
restore ZMTPMessage.parse(frames, enveloped)

For backwards compatibility

Change-Id: I3cc3beb14a4aa8c10c156e433784f0d51aabfc90
parser: optimize for common 3 + 3 frames case

Change-Id: I7308390fdba07998e77cb9d38e935eebe3566e7b
parse: speed up test

Change-Id: Iaf94a82c8bfa58938c3ecd3d4b2804effab8a0d2
parser: stricter test
parser: fix delimiter bug + stricter test

Make sure that the parser can parse enveloped
messages without content frames in enveloped mode.
I.e., for the input ["a", ""] it should emit
a parsed message with the envelope ["a"] and
content [].
parser: test comment
release 0.1.0
start 0.1.1 development
long sizeLimit + byteSize in incoming message
release 0.1.1
start 0.1.2 development