Fix undefined index and static call warnings, plus cache the timezones

If settings aren't set to true then they don't exist, so do a "isset" first to check.

The getTimezone method was non-static but being called statically. As well as making it static, it might as well be cached to save generating it again on any later calls.

LoadAvg now runs without generating any warnings (for me).