Remove public constructors from LogLevel

LogLevel class provided a public constructor LogLevel(String, Integer)
but most methods assumed that only certain values were acceptable,
similar to a enumeration.

For this reason the public constructors were hidden removing the
possibility of creating invalid LogLevel instances.

* Public constructors were turned into private.
* CompareTo(Object) method in LogLevel now handles null input.
* Significant number of unit tests added to increase coverage on
LogLevel class.