directory: Add extensions, optimize CSS

I updated the directory middleware with a plethora of new extensions, and some new icons, too. (I also made it so that an icon could be reused for another extension.)

I understand that they aren't all "file" icons (they don't all have a white piece of paper in the background), so the arrangement may be a tad inconsistent now. However:

- They are all still from Silk.
- Most of them communicate the type of file better than a plain piece of white paper would.
- IMO they make the directories feel more like that of an actual filebrowser.

I also updated the CSS generation algorithm to combine 2 rules into 1, and it should result in files that are about 33% smaller than before. The 2 rules were exactly the same, so they were needlessly duplicating long base64 png strings.