Added logging levels.

Logger now has a static private Level object. This is just a mapping
from verbose log levels to a value. When logging, if verbose log level
value is lower than the current level, then we wont log that message.