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
Handle case of very small values creating an infinite ratio.
Merge remote-tracking branch 'origin/master' into scaleToGeodeticSurface
Merge pull request #407 from AnalyticalGraphicsInc/scaleToGeodeticSurface

Fixes for Ellipsoid.scaleToGeodeticSurface