Fixes for Ellipsoid.scaleToGeodeticSurface

1. Handle case where cartesian is at or near the center of the ellipsoid.
2. For positions at the center, we now return `undefined`.
3. For positions near the center, we now return the result instead of getting stuck in an infinite loop.
4. Fixes #338 by handling case 2 during a morph.
5. Minor cleanup related to above changes.

CC @kring @bagnell
Fix tilt close to surface in 3D. There is still the problem with zooming out when in columbus view.
Add category support for specs.
Add category support for suites.
Count categorized suites as focused.
Add category select UI.
Merge branch 'master' into jasmine-categories
Support multiple categories.
Safegaurd against forgetting to supply a single category as an array.
Improve previous commit to work with specs too.
Added WebGL test category
Add ability to run all categories and all categories except the selected
one.
Merge branch 'jasmine-categories' into webgl-category
Rename category to categories.
Remove condition that specs must have a category to run under `All`.
Merge branch 'jasmine-categories' into webgl-category
Merge branch 'master' into tilt
Replace `Select a category` with current category.
Update main menu.

Looks like we lost the ability to select a test to run.  Maybe this
can be added back in the future?  It would require the not-run tests
to list themselves on the page, which they no longer do.
Handle case of very small values creating an infinite ratio.