Code cleanup

This is a pretty big change.

I've bought down the amount of warnings from around 280 to 173. Some warnings must be suppressed as they can't be avoided easily.
The function getTestLevel must have a docblock comment.