Issue title: graph zoom and resize resets after browser refresh
 Issue body: Hi, 

This is a usability problem related to #80. At the moment, when your friendly neighbor ML grad student refreshes tensorboard for the updated graph (because board refreshes too slowly even after --set-interval=1 as mentioned in #80 #158), the graph state gets lost. It then requires switching from keyboard to mouse and a few seconds of fumbling to get the graph zoom it as before.

The expected behavior is to have the board reload instantaneously, without losing the zoom and translation of the current graph view. Current behavior (loss of zoom and translation) incurs a large mental penalty to the user, it feels like getting zapped by the browser each time you refresh, like with the office doorknob in a dry and freezing Chicago winter.

It would be great if this state is somewhat preserved in the local storage or the url, so that we don't have to do this.

With stateless components, you could even have the entire client-side session state saved. 
 Comments: 
 Comment 0: Same concern here: when I move ops to and from the auxiliary graph, the graph layout reset to its original layout. Having a better control on what goes on the main graph would be a  very nice feature but this layout reset render the current implementation very painful to use.

Along the same line, it would be amazing if the viewer could be controlled via some JS property. For instance, a user could decide to start the viewer from a desired layout. This desired layout could be specified by the user or saved from the UI.
 Comment 1: currently when sharing board to another person on the team, there is no way to preserve the filter settings in the url. The person who gets the url usually asks: "which run shall I look at?"

It would be great if these information are saved in the url.
 Comment 2: Closing this out with a very belated response since I believe these are mostly resolved.

@episodeyang I think TensorBoard now preserves the zoom/translate settings on scalar plots (which is sounds like you were referring to) when you click the "Refresh" icon *within* TensorBoard.  Refreshing the entire tab still resets the state, but this is by design; to just poll for new data it should be sufficient to refresh within TensorBoard.

For the second comment about sharing filter settings in the URL, I think run and tag filters are indeed persisted to the URL now, but let me know if there's still an issue here.

@purpledog I think you're actually talking about the model graph visualization dashboard, which is a separate issue?  It sounds like this was reported as its own issue in #955 so that would be the place to follow up.
{'source': 'GithubIssues', 'repo_name_with_owner': 'tensorflow/tensorboard', 'issue_id': 251865442, 'repo_stars': 6207.0}