issue #717 #733

Playing with blacklist reveals a lot. Which is making me think twice
about having watches in here at all. (2.1.X may have none) The watch
events from zoom (which happen a ton) really begin to slow down the map
as it goes. IE. Make a bunch of markers keep zooming in and out.. the
tiles and scaling will eventually get crummy. Without the mods to the
scope values its all gravy. So, to have 2.0.X have available speed and
still have a similar API, I will add blacklist watches as well to follow
up commit set / PR.

Events Cleanup
- listeners are tracked and cleaned up on $destroy

Events are exposed via Control #733. They can be removed manually or use
scope.control.removeEvents(listeners)

Center, and Zoom watches

- double checking if the kicked off watch is even relevant by
  checking against its current scope value (not newValue). This is
necessary since the watches are kicked via timeout. Now the bail out
(return in the function) actually happend.
center and zoom.. more locking for watches
reverted _.each in favor of for
Merge pull request #974 from nmccready/nick_mc/issue_717_zooming_in_steps_laggy

issue #717 #733 zoom and center speed, blacklist code cleaning