PROTON-693: Python Url class to wrap C function pni_parse_url

Also added unit tests.

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1626264 13f79535-47bb-0310-9956-ffa450edef68
PROTON-674: patch from dominic for setting ttl on a subscription

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1626288 13f79535-47bb-0310-9956-ffa450edef68
PROTON-693: Python Url class to wrap C function pni_parse_url

It was pointed out that pni_parse_url is an internal function and the interface
is not suitable for public API.

Rewrote the URL parser as a proper swigable C API pn_url_*. This gets rid of the
need for previous swig insanity and is cleaner all round.

Internally still uses the pni_parse_url parser, we can clean that up later.

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1626329 13f79535-47bb-0310-9956-ffa450edef68
https://issues.apache.org/jira/browse/PROTON-694 - splitting conversion and encoding on JMSMappingOutboundTransformer

Motivation: some providers may choose to encode the ProtonJMessage at a later time, or using a specific buffer such as Netty Pooled Buffers.

The current method is using a simple expanding buffer, while Netty can do it in a better way.