Use per-module logger instances

Currently we use wrong logging approach.

First, Holocron's logger attribute returns a global logger instance.
That means, if you create two Holocron instances they will use the same
logger instance.

Second, we need to pass Holocron instance wherever we want to use logging
and it's annoying. Logging shouldn't change our interfaces, it just
should track helpful records and print them to some output.