Refactor time key and tag key mixins

This PR refactors the `SetTimeKeyMixin` and the `SetTagKeyMixin`.

The initial idea was to alter the possible configuration options for those mixins. However, this was considered to be too specific to our problem at hand. In the course of the implementation the refactoring represented in this PR evolved and I did not want to hold it back. I hope it makes the code clearer.

This PR is best reviewed commit by commit.
Can you give me a hint on where I can find this logging?

As I see it `utc` is a local variable that is not used anywhere else. On the other hand, `@localtime` is given as a parameter to `TimeFormatter.new` which checks for `if @localtime`. Hence, it makes no difference if `@localtime` is `nil` or `false`. This is why, `@localtime` is either `false` by default or because `conf['localtime']` is `true`.

But I guess you were able to figure this out yourself. I just wanted to explain my intention on this refactoring step a bit more.