Foolproof z-homing and auto bed leveling

Fixes #15 by forcing an X and Y home before every Z home.  So `G28 Z0` is now equivalent to `G28 X0 Y0 Z0`

This also simplifies #9