NO-JIRA: small tidyup
NO-JIRA: Remove unused internal sasl API
PROTON-696: Remove pn_buffer_t and pn_frame_t from the public API
(they are currently only used privately)
- Don't want to expose a potentially changing internal detail
- XXX Currently left the DLL exports in because of proton and proton-dump
PROTON-769: Move trace flags entirely to transport code
PROTON-770: Change dispatcher interface (more parameters for frame handlers)
- Use transport, frametype and channel
- Pass more of the frame directly into the frame handlers
PROTON-771: Validate performative against frame type
PROTON-770: Eliminate pn_dispatcher_t:
- Moved all useful state from pn_dispatcher_t to pn_transport_t
- Only left input frame dispatching in dispatcher.[ch]
NO-JIRA: Fix core dumps and memory management errors in  python binding, engine.py.

Tests were dumping core, valgrind showed pointers being used after deleted.

Fix strategy in engine.py:

Always delete a pointer attribute after freeing it. Any attempt to use a freed
pointer is an error, by deleting the attribute we detect the error faster and
with a python trace rather than later on as a core dump in C code.

Found and fixed bug in Endpoint.release, was using deleted pointer.
NO-JIRA: proton.Url fill in  defaults by default.

Constructing a proton.Url will call self.defaults() to fill in any missing parts
of the url with defaults. This is almost always what you want and means that
users don't have to call url.defaults() manually.

The old behavior is still available by constructing the Url with defaults=False,
in case this is ever useful.  In that case we parse the URL string but leave any
missing fields as None. The str of the URL reflects the original, incomplete
string.
PROTON-772: Remove all direct printing to stdout and stderr.

Added a simple log facility in log.h.
Former printfs to stderr, stout now use pn_logf().
Output is enabled by setting envionment variable PN_TRACE_LOG=ON or
by calling: pn_log_init(); pn_log_enable(true);
Default is output to stderr, can provide replacement log function via pn_log_logger()
Initial set of engine examples along with supporting additions to the library.
Use logging instead of print statements
grab the GIL for incref/decref
added pn_record_has
perform decrefs last
use proper comparison
updated python bindings to use a simpler and more robust wrapping strategy
check for error on send
fixed an embarrassing braino
removed dead _popped method and added a transport property to protocol events, endpoints, and deliveries