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.
> 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.

I believe inheritance would have a performance cost we'd rather not pay.  I agree it should be documented as optional, though.