Cube mesher

So, the greedy mesher appears to work.

Still a bunch of stuff that probably needs to change, but I figured I would pull request it and see what you guys think.

So:
1) Settings.
Where they should be, what they should be, etc. I think these are immensely useful for a variety of reasons, such as testing, and of course changing your settings while running the game. Granted not all the settings I have are necessarily useful, I think some maybe should be removed, but we should definitely discuss how to do that. As in how to separate one off quickly broken settings, (which I still want to be able to change with a flag, because going in and changing the code even if its just changing one function call is really annoying and makes changing multiple settings hard and is just a crappy solution to doing repeated albeit mostly manual tests) and settings which we want to maintain for long term reasons (using the greedy mesher vs simple mesher).

2) Three.js in the worker thread.
I hacked in Vector3 and Vector2 to the worker thread, I think this is important because I think Vector3 should be used at almost every opportunity, it can eliminate almost all .x, .y, .z deindexing and effectively half a lot of code or even cut in third a lot of code.

3) Helper functions.
I added some, I added a bunch of loop helpers and use them a few times, I added CallWithVector3, etc. I think helper functions are good, but some might need to be reorganized, and some functions such as clamp should probably be put in 1 file.

4) Worker folder fiasco
How the worker thread includes file is kinda a mess now, it has all these references to file way up the hierachy, and so maybe it should be restructured... idk.