Fixed major crash and performance issues.

- Engine.DisposeTimers was not waiting for the timers to complete.
(Callbacks could still be fired after Engine disposal).
- Thing.VectorFromPlayer could be computed after Engine disposal (now is
refreshed asynchronously on the Engine's LuaExecutionQueue).
- Unnecessary timer operations on the UI thread now happen in the
LuaExecutionQueue thread. (Removed Engine.WherigoTimerTickCore, gained
performance).
- UIObject properties could still be accessed after Engine's disposal
because of direct invoking of BeginDispatchOnUIThread in
Engine.RaisePropertyChangedInObject. (Now uses the UIDispatchQueue.)