Moving the Catch boilerplate to DetourCrowdTestUtils
Adding helper to load a tiled navmesh

- Initiating the regression test for the bug we're trying to fix
- Creating a helper to extract interesting tiles from a mesh
Reproducing the "sinking" agent in a unit test
Removing unused and deprecated dtCrowd::agentIsMoving method
Making dtCrowd::pushAgentPosition rely of dtCrowd::pushAgent
Additional unit test narrowing down the bug to dtCrowd::updatePosition
Adding a 'dungeon.obj' based crowd demo.

It's purpose it to have ready-to-launch test with a non-flat ground.
Simplification of the applying of the velocity on agents
Documentation and cosmetic overhaul of dtNavMeshQuery::findNearestPoly

- Parameters renamed and documentation overhauled
- Updates in location where it was used to make things hopefully cleaner
- Adding a call when finishing an "off mesh" connection to make sure the position is OK
Adding its current navmesh polygon to each agent

- And update it when it makes sense so that agents retrieved by the user always have their polygon.
dtNavMeshQuery::moveAlongSurface now explicitly returns the end polygon

- The visited polygon list return is now optional.
Merge pull request #31 from masagroup/fix/underground_teleportation

Fixing the underground teleportation bug described in MLV-5058.

In practice the bug come from a weirdly generated navmesh. This part of the bug has not been adressed. The going undergound part of the bug was coming from the location process of the agents: not continuous and not relying on the space-time coherency of the movements.

Basically the work done here introduce a continuous location of the agents on the navmesh (introducing dtCrowdAgent::poly) and changes dtNavMeshQuery::moveAlongSurface to make it returns the end-of-movement polygon.