Factored out some duplicate code in WorkQueue.
Added a WorkerThread-local cache.

Might investigate using thread_local in the future, since it now works
on GCC 4.8 and clang. Still, this "feels" cleaner to me, and makes it
easier to share these among disparate parts of code. OTOH,
thread_local is probably faster, and avoids boost::any and run-time
lookups.
Made MeshBuilder reuseable, then put it in WorkerThread cache.

This avoids continually reallocating while tesselating
things. Unfortunately, you still need to copy the MeshBuilder to the
main thread, which uploads it to the gpu than destroys it, creating
heap churn. Eventually, this will be a thread-safe shared object pool
in the WorkerThread cache.
Made Chunk store BlockType IDs instead of pointers to BlockTypes.
Simplified BlockType to a struct.
Make BlockTypeRegistry return references instead of pointers.
Moved tesselation code from Chunk and Font into tesselation module.
Gave each thread its own LuaJIT instance.