Initial commit of lua binding templates.

Definitely needs cleanup, organization, and probably deserves to be its
own library.
Added sync method to WorkerThread and WorkQueue.
Hacked in converting lua errors to C++ exceptions with stack trace.
Split lua templates into separate headers.
Replaced boost::variant with a simple Variant class.

It doesn't allocate, and it sidesteps much of the complexity
of implementing a proper variant class by being non-copyable.
Integrated google test, and wrote two unit tests.