rewrote stat code

made the stat code more proper, changed the stat load on startup so it
uses the getters and setters.

had to figure out some stat bugs after the changeover. they are fixed.

still going to be a while until all of the stat calls in the engine are
changed over to getters and setters so we can remove the static
definitions.