Camera-Terrain interaction

For #449, #549, and #1060.

* Default panning now picks the terrain.
* Modified the default camera tilt mouse behavior to tilt about the point clicked.
* Added camera collision detection with terrain to the default mouse interaction.
* Added the following methods to `IntersectionTests`: `rayTriangle`, `lineSegmentTriangle`, `raySphere`, and `lineSegmentSphere`.
* Fixed camera rotation near the camera's constrained axis.
* Added `Globe.getHeight` and `Globe.pick` for finding the terrain height at a given Cartographic coordinate and picking the terrain with a ray.
I was mimicking how `rayEllipsoid` worked. I'm thinking that I should just use `Cartesian2`. I don't think we should make an intersection type. What if the intersection isn't a point? It could be a line, circle, etc.