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()