getTileDataAvailable() handling for terrain providers

This is a tile loading optimisation for cameras that start near the globe based on advice from Kevin.  It is currently only implemented for the Cesium terrain provider which knows in advance which tiles are present.
Ah, right.  This is still a little sketchy.  It's as if we want to document this function as optional so users know they need to check to see if the function exists or we need to start using inheritance of whatever form to avoid this.