Factor out partials for "set location" step and next/prev controls

template tweaks
Rename addTreeMode.js as addMapFeature.js

Most of addTreeMode.js will be moved to general-purpose addMapFeature.js ... start by renaming to keep the diffs clean
Make addMapFeature.js re-entrant

We'll need (at least) two instances of addMapFeature.js on the map page (one for trees, one for resources) so make it re-entrant:
* Pull all variables inside the init() method
* Export only init()
* Return an object containing other interface functions

Recreate addPageMode.js as a tiny wrapper around addMapFeature.js

This is a noisy commit, but there's nothing subtle going on.
Make all details of "Add Tree" steps work

* Move most tree-specific parts of addMapFeature.js to addTreeMode.js
* Create stepControls.js to manage step navigation (Note because there's a CSS "transition" animation we need events for both the start and the end of a step change)* Enable/disable first "next" button as you go through the "choose location" process
* Focus on appropriate input element when you change steps
* Get data for final "summary" step (and show "Empty planting site" or "Missing species" as appropriate)
* Set hidden address fields correctly fromm reverse-geocode (fixes #1174)