add webworker threads module
add RequireWorker
update framerate to be more accurate and only update once per second
generate terrain in a background web worker rather than main thread