Refactor and DRY out registration

This makes it easier to extend registration without having to duplicate
all of the code again
Merge pull request #759 from ahinz/topic/updates-to-reg

Topic/updates to reg
Provide extension mechanism for UI tests
Bacon utils for Leaflet

* Rename wrapOnEvent() as leafletEventStream()
* Add leafletSingleClickEventStream()
* Add settings.DOUBLE_CLICK_INTERVAL and config.doubleClickInterval
Fixes #750, font-size issues
Use :empty to fix error message display
Fix broken UI tests
Make 'Tree Key' open in new tab

fixes #726 on github.
Merge pull request #765 from steventlamb/bug/726/tree_key_target_blank

Make 'Tree Key' open in new tab
Add tooltip to Additional Trunk '+' button

addresses #691 on github.

may or may not be a complete fix.
Add :empty on text-error inline form messages
Merge pull request #764 from mtedeschi/topic/post-launch-fixes

Last minute styling fixes
Rename all recent_edits URLs to edits, fixes #197
Merge pull request #763 from RickMohr/single-not-double-click

Bacon utils for Leaflet
Add semicolon.
Merge pull request #766 from steventlamb/bug/691/multiple_trunk_button_text

Add tooltip to Additional Trunk '+' button
Merge pull request #762 from ahinz/fix/ui-tests

Fix/ui tests
hide diam calc total field when only one trunk

fixes #655 on github.

Instead of having a readonly input field, the input field used for the inlineEditForm is now totally hidden. In addition, there is a input field underneath the worksheet that will show the total when multiple trunks are added.
Fix lint
Fix a few typeahead issues.

typeahead.js caches its Datasets by name, so typeaheads sharing names
forced them to share dataset options, which made add a tree continue to
show the list on focus.

We also were missing the trailing '/' on URLs, which was causing two
requests, one for a 301 redirect.