Thread-safe and asynchronous core (part 1)

Part one of a huge refactor that includes:
+ Protection of all calls to Lua against thread concurrency.
+ Added class LuaExecutionQueue for async Lua job scheduling.
+ Moved most utilities to be extension methods.
+ Simplification of model API.

Todo/Known issues
+ Buffer UI thread jobs (RaisePropertyChanged...) while the
LuaExecutionQueue is busy with big jobs.
+ Refactor thread-safety inside a SafeLua state that can be passed
around to other objects.
+ Refactor serialization out of Engine (other classes) and implement
thread-safety.