refactor and optimize

still needs a lot of work... BUT

* added a feature to swap the webview and image between screens (send the webview to the external display). and it rules.

* factored out external display and resizable webview responsibilities, still sort of wonky the way they work together

* deleted comments (will add new ones)