Added Terrain support:
- New Terrain class for rendering heightmap based terrains. Terrains can be attached to Nodes, similar to Models.
- Terrain LOD support, multiple surface layers (texture splatting), flexible heightfield sizes, full transform (including scale) support, physics, and more.
- Header files are well documented and additional documentation and samples will be provided later.
- Removed the ability to create heightfield collision shapes from Images as this was error prone and not very accurate. Replaced this with a Terrain::HeightField class that can now be used to construct both heightfield collision shapes, as well as Terrain.
- Added a object-space normal map generation to gameplay-encoder, which is useful for generating terrain normal maps. This option can generate normal maps from PNG, RAW8 and RAW16 heightmap images.

Various other small changes and fixes:
- Added support for setting the depth compare function on render state.
- Added support for texture/sampler arrays being passed to materials.
- Fixed a couple minor memory leaks in the physics code, which were likely to be affecting anyone up to this point.
- Fixed typo in PhysicsRigidBody::Parameters constructor initializer that caused restitution to not get initialized properly, which could lead to erratic behavior for the rigid body.
- Fixed an issue where physics debug drawing for large scenes would cause the internal MeshBatch to grow to an enormous size, using large amounts of memory.
- Added support for preprocessor directive NO_LUA_BINDINGS in the gameplay project to omit inclusion of generated lua bindings in compilation. This does not disable the LUA runtime, but simply prevents all generated lua bindings from being compiled into gameplay. This is mainly a development feature to speed up compile time when making frequent changes to gameplay header files (which otherwise would result in a recompile of all lua bindings). In order for this to work you also need to remove all lua_ files from your project.
Merge branch 'next' of https://github.com/blackberry/GamePlay into next

Conflicts:
	gameplay/gameplay.vcxproj.filters
Merge branch 'next' of https://github.com/blackberry/GamePlay into next
Added support for specifying depth function via the "depthFunc" string in materials.
Added support for defining terrains in .scene files, both inline and through external references.
Added support for defining inline camera's in .scene files.
Added support for defining .scene files without a 'path' (GPB/bundle) file. New nodes can now be created in the .scene file if an ID is used that does not exist in the bundle. This changes scene loading behavior so that it is no longer an error when a node is found that does not exist in the bundle. Instead, a new empty node is created when this occurs.
Added support for setting a light color and light direction on scene. Used to store and bind directional light information for simple lit scenes that have at least one main directional light (i.e. the Sun).
Added material auto binding support for SCENE_AMBIENT_COLOR, SCENE_LIGHT_COLOR and SCENE_LIGHT_DIRECTION.
Updated Lua generator to only write generated files if they differ from existing files. This will reduce both build times and committing of unchanged script binding files.
Added static Scene::getScene(const char*) to query currently active scenes in a game.
Change to allow multiple translate, rotate and scale commands in a single node entity within .scene files. The commands are applied in the order that they are declared.
Added methods to PhysicsCollisionObject to allow conversion to subclass types (i.e. PhysicsRigidBody, PhysicsCharacter, etc) from script.
Merge branch 'next' of https://github.com/blackberry/GamePlay into next
Minor fix in AudioListener to remove camera transform listener in destructor, which sometimes caused an access violation during game shutdown.
Fixed crash that could occur when calling Game::exit() from a script function, due to the order of subsystem finalization and destruction.
Fixes #670.
Merge pull request #673 from kwhatmough/next

Fixes #670.
Minor whitespace change for appearances. No effect on functionality.
Fixes #671: Implements missing Matrix methods for billboard and reflection.
Merge pull request #674 from kwhatmough/next

Fixes #671 (Matrix createBillboard and createReflection)
Fixes #619.
Merge pull request #676 from kwhatmough/next

Fixes #619.
Added an image to the main README.md
Update README.md
Merge pull request #677 from dgough/next

Added an image to the README.md
Updated the git ignore list
Ignore /usb and /gameplay/windows
Merge pull request #678 from dgough/next

Updated the git ignore list
Ensures physics collision objects are not calling translate(0,0,0) on Nodes and causing them to unnecessarily dirty the transformation if there is no translation to be applied.