Add Two Ways Data-Binding to Rectangle bounds

I add below code for enhancing 'rectangle' directive
1. $watch to bounds 
2. google map event listener to 'bound_changed' (dynamically bind to bounds)
3. simulate 'drag' event by using 'mousedown', 'mousemove' and 'mouseup'

Please take a look, thanks ~