Memoize buffer mutexes
Memoize buffer mutexes

When the buffer state is reset after dropping messages, the mutexes are also reinitialized with new instances. This causes an issue with `buffer_flush` when it tries to unlock the new mutex that it never locked, raising `Attempt to unlock a mutex which is not locked (ThreadError)`.

This fixes the issue by memoizing the buffer mutexes and reusing them even when the buffer state is reset.

Fixes https://github.com/dwbutler/logstash-logger/issues/97

dwbutler/logstash-logger,blacklane/logstash-logger