Make logging a pluggable component of Protobuf

This refactors logging to make the logger a pluggable component of
Protobuf. The logger can be changed  by using
`::Protobuf::Logging.logger = new_logger`. Any object that complies with
the API of the ruby standard logger may be used.

All the spec's in spec/lib are passing. I had some errors in the zmq
library when trying to run the others. I also uncovered a bug that
appears when running specs with DEBUG=1. The `RequestDecoder` and the
`ResponseDecoder` referred to `env.signature` when they should have been
referring to `env.log_signature`. That is now fixed.

I used the logging in [mperham's
sidekiq](https://github.com/mperham/sidekiq) as a reference.

---

RFC @localshred @abrandoned