Cherry-picked commits from markembling/photosphere (Part 1)

-Handle partial spheres without failing horribly markembling/photosphere@cab6f48161c5479cded2492dba8e5fb66cd3983c
-More work to handle partial images better (in progress) markembling/photosphere@74ddb48ef6a09535c73a9d25740b4111267ebefa
-Attempt to figure out the proper start position markembling/photosphere@93aceb435c3d843de8d292d8e100e2f67e630060
-Those names were confusing me markembling/photosphere@5a2a7eda545a2292cdddfadbbd83b9131ba09725
-Define a mid-point and use that as the baseline for auto-panning markembling/photosphere@9a410615d7517210c0b24c42ee075919364bd79c

Note: Changes to files other than sphere.js were not included from these commits.