PROTON-647: add method to copy an Event before use of the Collector pop() reclaims it to the pool

Applied patch from Clebert Suconic

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1617753 13f79535-47bb-0310-9956-ffa450edef68
PROTON-582: Perl Message can infer the type of the content provided.

The qpid::proton::Message->set_body() method can take either a single
argument (the body) or two arguments (the body and an explicit type).

Previous, if the second argument wasn't provided, the code assumed it
was a qpid::message::STRING type.

Now, the code will attempt to determine the type of the argument. It can
successfully infer a hash, array, int and string. It will default to a
string if it cannot otherwise determine the type.

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1617793 13f79535-47bb-0310-9956-ffa450edef68
PROTON-646: Fix when Perl sets a message body to be BOOL:False.

Had to work around how checking whether a body value was defined would
return false if it were defined but set to false.

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1617835 13f79535-47bb-0310-9956-ffa450edef68
PROTON-650: Added a help option to proton-dump.

If no arguments are provided on the command line then the help output is
displayed.

Also created a manpage from the help output using help2man.

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1618947 13f79535-47bb-0310-9956-ffa450edef68
PROTON-650: use pn_compat utilities for cross platform builds



git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1619102 13f79535-47bb-0310-9956-ffa450edef68
Initial refactoring of io layers:
- Eliminate some unnecessary stuff.
- Make pn_io_layer_t a pure interface.
Remove unused io_layer function.
Simplify amqp header code; remove header_count member from pn_transport_t
Refactor the io_layer
Change tick layer callbacks so that they're not chained just called in sequence
Remove transport pointer from ssl and sasl structs
- This involved changing pn_ssl_init() API
Reorganise layer initialisation:
- Defer until first send/receive
- Move layer initialisation entirely to transport
Mostly split transport into server/client sides
WIP
WIP: A lot of server autodetectioin done - not fully workign yet