Change terrain intersection testing.

- Introduce rayIntersects to ITerrainAdapter to let the terrain
  implementation decide how to check for ray collisions.
- Use rayIntersects instead of RaySceneQueries in AvatarTerrainCursor,
  MainCamera and ThirdPersonCameraMount.
- In MainCamera, a result for the RaySceneQuery is created manually if
  the ray intersects with the terrain so the listeners do not have to be
  changed.
Use ST_EXTERIOR_REAL_FAR to create scene manager
Pass ray by reference in ITerrainAdapter
Resolve some coding standard issues.
Add Ogre::Terrain and Ogre::Paging to build
Move IPageData from scene manager specific code.
Use Ogre::Terrain component with a constant height.

- Only basic support, no paging or data from Mercator yet.
- No Materials used yet, so far the terrain is a black surface.
- Move the dummy implementations to a separate directory(can be deleted
  later if unnecessary)
Enable terrain paging using a flat terrain
Use Mercator data for terrain rendering

 - The TerrainPageDataProvider is now registered directly with the
   TerrainAdapter instead of with Scene.
 - There is still an occasional segfault remaining most likely caused by
   a problem with how terrain data is loaded and unloaded in multiple
   threads.
Set terrain load and hold radius to usable value
Wait for terrain page to finish loading
Create constants for terrain rendering

 TERRAIN_SIZE, LOAD_RADIUS and HOLD_RADIUS are now static constants
Remove dummy terrain implementation
Make terrain constants parameters.
Set terrain page load interval to 0
Add comment to TerrainPageSurfaceLayer
Add TerrainMaterialGeneratorEmber

This MaterialGenerator can be used by the Ogre Terrain component to use
the materials generated by Ember.
Use Ember materials for Ogre terrain.

Enables usage of OgreTerrainMaterialGeneratorEmber which causes the Ogre
Terrain component to use the materials generated by Ember.

The terrain looks acceptable now, there are a few material-related
graphical artifacts remaining though(E.g. shadows and lighting does not
look very good).
Set some Ogre Terrain options for testing.
Set terrain intersection result movable to nullptr

The constructor of the struct does not initialize this pointer, which
results in crashes while editing terrain.