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