Fixes #1209: Tarhiel never falls

There are a few pitfalls with this code:
 - Gravity is only considered when applying queued movement. Therefore, make sure to queue some movement every frame. (Could be refactored in the future?)
 - The character controller never detects being in free fall (!World::isOnGround) unless movement has been applied.
Fix build error
Merge remote-tracking branch 'scrawl/master'