Don't use data binding for showing/hiding diffs and expose an API.
Wait until the patch diffs are loaded to scroll down on 'e' key.
Create diff lines async, even if the parsed diff is cached.
Don't expand patchset file list until active.

This breaks the close animation when collapsing a patchset,
but makes loading them much faster since we don't need to
create so much DOM.
Use a map of file extensions instead of an if tree.

The if tree and regex matching is very expensive on large
patchsets. Using a map reduces the time spent creating the
PatchFile objects by 50% in large rebaseline patches where
there's a ton of files that don't map to any syntax and
would hit every case in the old if tree.

ex. https://codereview.chromium.org/328053002 is reduced by
100ms when loading the really big patchset.