Fixed inconsistency in TypedMessageSink class. push function now uses Ri...

...ngBuffer::push. Also fixed perfect forwarding in the logger

This PR reverts back changes made to TypedMessageSink::push function. push is now using RingBuffer::push. This PR also allows tryPush to be called with an lvalue reference (via a universal reference).

I had to adapt some code in the logger to get it to compile and I also took advantage of the situation to enable perfect forwarding in the logger code.