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
example, can't reproduce yet
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
Merge branch 'master' into nick_mc/issue_979/polys_race

Conflicts:
	dist/angular-google-maps.min.js
	dist/angular-google-maps_dev_mapped.min.js
	dist/angular-google-maps_dev_mapped.min.js.map
Merge pull request #981 from nmccready/nick_mc/issue_979/polys_race

example of /#797
Merge remote-tracking branch 'upstream/master'

Conflicts:
	dist/angular-google-maps.min.js
	dist/angular-google-maps_dev_mapped.js.map
	dist/angular-google-maps_dev_mapped.min.js
	dist/angular-google-maps_dev_mapped.min.js.map