PROTON-569: Initialise pipe file descriptors to -1 in messenger prior to calling pn_pipe

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1590244 13f79535-47bb-0310-9956-ffa450edef68
PROTON-570: If Ruby dependencies are missing, then Ruby is not built

Previously, the entire build would fail if the dependencies were
missing. Now, instead, it will just not build the bindings or run the
tests if any are missing.

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1590755 13f79535-47bb-0310-9956-ffa450edef68
protoype on Parser
optimizations on Decoder:
- Avoiding multiple instances
- stateless Decoder/Encoder (can always reuse the same instance now)
- avoiding intermediate Lists when possible (done on Transfer at this point only)
- a few optimizations based on tests