Convert UI to ReactJS

The UI should look almost identical to how it did before, but with a couple fewer bugs and a few more features.

The main new feature is that webdiff now shows the full list of files, which can be collapsed to a dropdown if desired.
+1 to components which may or may not render themselves being an anti-pattern.

actually apropos of our thread above about what the delegation chain from `Root -> DiffView -> {ImageDiffView, TextDiffView}` should look like :)