Making home marker un-draggable, and if invalid  then invisible.

This closes #233
Refactoring some common code.
Merge pull request #289 from arthurbenemann/HomeFix

Home fix