text: Title: Duplicated event handlers in Graph
  Body: In attempting to create an offshoot of Graph with custom click handling, I found that the JS event handlers are being re-appended every time the Graph is updated by a Dash callback. Here's a minimal example:
  
  ```python
  import dash
  from dash.dependencies import Input, Output
  import dash_core_components as dcc
  import plotly.graph_objs as go
  
  app = dash.Dash('')
  
  app.layout = html.Div([
      dcc.Input(id='input'),
      dcc.Graph(id='graph')
  ])
  
  @app.callback(Output('graph', 'figure'),
                [Input('input', 'value')])
  def update(value):
      return go.Figure(data=[go.Scatter(x=[1,2,3], y=[2, 1, 3])])
  
  if __name__ == '__main__':
      app.run_server()
  ```
  
  If you log the ```plotly_click``` handler in Graph.react.js, you'll see what I mean. Without the Dash callback, the handler runs once every time you click on a point. Add the callback, and now the handler runs twice, initially. Then type away in the input, and twice becomes thrice. And so on.
  
  Maybe I'm abusing the framework by playing with the plotly_click handler directly, but even so, this behavior seems mildly wasteful at best. And for adding customized click handling, it's a nightmare. I don't know enough React to prescribe a solution, but my guess is the that the problem stems from the that ```plot``` always queues up ```bindEvents``` to run after ```Plotly.react``` completes .