Logging System Rewrite

Highlights:
- New Logger class, Centrally handles formatting and filtering
- New LogMarker class, Values in here act like internal Log Levels, All
*.log calls use this now
- No more tossing around logs from TerrainControl => *Engine => Logger
--- Currently TerrainControl => Logger... Can be cut down to directly
using Logger if desired
- In log methods we used to have (..., Object[] params), this has
changed to (..., Object... params) to both mirror methods with (...,
String... messages) and to eliminate the need for doing log(..., new
Object[]{...})
--- As a result, some calls to log* that contain a string message and a
single STRING param will have to cast the string to an object to force
the use of (..., String message, Object... params) methods. Not too big
of a deal.
- String messages with params no longer use the "{n}" syntax seen in
JUL, Log4j2 uses the "{}" syntax... As a result, log params must be in
the same order as found in the message.