Support removing the control

Call map.removeControl(control) to remove it from the map. The
addInitHook now follows the same format as L.Control.ZoomControl, so
map.loadingControl is not guaranteed to exist.
Remove layerEventHandlers object

Storing the event handlers in an object was causing a bug.
Spacing, make some lines more compact
Ensure off() context matches on() context
Avoid clobbering zoomControl on remove