PROTON-743: Provide a means to clear errors in a Ruby Messenger.

Added the clear_error method to allow clearing out the error state in a
Ruby Messenger object.
PROTON-736: Replace missed force_encoding with encode
NO-JIRA: Removed trailing spaces from the Ruby Messenger class.
PROTON-747: Around wrappers for Ruby Messenger methods that raise errors

Each method that could potentially raise an exception in
Qpid::Proton::Message is now wrapped by a method which checks for, and
then raises, the appropriate runtime error based on the error code.
NO-JIRA: Fix how Perl uses the utils module.
PROTON-753: add constants for the delivery outcome symbol descriptors, for use in setting the supported outcomes on a Source
PROTON-749: Split transport into server/client sides
- This allows the server and client sides of the transport
  to have different default behaviours.
- We set the SASL client/server from the transport setting
- There are some workarounds in the tests because the full logic isn't
  implemented in proton-j, but the shared python tests must run against both.
PROTON-749: Server transport autodetect:
- Defer layer initialisation until first send/receive
- Move layer initialisation entirely to transport
- Server transports will now autodetect the client protocol layers
  talking to them and configure themselves automatically
- There are still some hacks in here to make SSL work.
  It's not obvious why we need these hacks.
PROTON-749: Add the deprecated C APIs back in for backward compatibility.
PROTON-749, PROTON-750: Merge changes to development stream.