Abstract a function to get a logger implementation expression.

It handles atoms in compile time and falls back to run-time call to
ale_utils:logger_impl in other cases.

Change-Id: I6bd965fe562afee941fe6e7843f3dd1b8a199d5c
Reviewed-on: http://review.couchbase.org/37518
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Don't check logger expression for validity.

Essentially we just want to allow everything that is syntactically
correct Erlang.

Change-Id: Ie120c79d0155ff0a2ec927a6d8081b5bae0d48b5
Reviewed-on: http://review.couchbase.org/37519
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>