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.
meant to ask before: what is the case where this is null? do we care about it? is it in the case of added/deleted files?