Log levels now defined as strings instead of an enumeration

The update lets user define additional log levels if they so wish
without any real restriction and also makes writing code easier as
it's more convenient to write "info" instead of LogLevel.info.