Thread-safe and asynchronous core (part 2)

Part two of the big refactor. This commit includes:
+ Dynamic management of events to the UI thread thanks to a
Dispatcher-like custom system (Utils.Threading.JobQueue).
+ Added Utils.SafeLua, a thread-safe utility wrapper around a Lua state.
This is the only lua context that can be used outside of Engine and
WIGInternalImpl.
+ Non critical events are buffered when the Engine's LuaExecutionQueue
is busy, in order to avoid a potential UI hangup when user code calls
lua-backed properties of Table.
+ Serialization code now thread-safe (remains to be tested) and
separated from the engine code.
+ Added sub-namespaces for clearer class presentation to the user. (WIP)

Todo/Known issues ("...In the next episode...") :
- Write async helpers in Engine for asynchronous calling of game-related
operations
- Cleaner architecture of loader classes (Formats) using interfaces.
- Document the source code thoroughly.