Pin the root-dwelling gitignore items to the root.
Ignore node_modules. Close #226.
Remove no-op third arg to parser.get(). It defaults to False.
Add description field to trees. Fix bug 951462.

The "tree" key in the generated config.py becomes an OrderedDict.
Pin all npm packages to exact versions. Fix bug 960102.
Prevent end of path line slashes being added in SAYT
Fix paths display during SAYT and only add data-path to folder links
Ensure paths are styled and uses same logic everywhere
Fix Bug 967168, add context menu for dir links
Polish look and feel. Ref bug 959863.

* Change yellow-green color scheme to a more neutral gray.
* Remove thick black band separating search panel from the rest of the page; it draws my eye.
* For the same reason, recolor folder listing table header.
* Darken Switch Tree menu enticingly on hover.
* Tighten up leading on code listings so it’s a little easier to see the shapes of block structures.
* Rig result snippets and code listings so mousing over a line highlights the line number as well. This makes it easy to find the number of a line without having to distractingly zebra-stripe the whole thing. (I’m willing to zebra-stripe the folder listings because they’re not as mentally demanding to read.
* Make the entire line-number table cell in code listings clickable, not just the line number itself.
* Put the tree name in the search box placeholder text to reinforce that you’re searching only the selected tree.

More to come.
Put each selector on its own line.
Make entire rows of the folder-contents tables clickable.

...with no JS (so we get to see link addresses on mouseover, command-click to open in a new window, etc.), non-linked padding between columns, or other horrors. Please tell me there are no other horrors.

Essentially, made the <a> tags display-block, and moved the padding from the table cells to the <a> tags themselves. Then I had to move the icon positioning around to compensate. The triple repeat of the links in the markup is unfortunate, but I thought it better than copying it around with JS. It should pretty much zip out.

Also shifted the folder icon down a tad so all the icons are level with the text baseline.
Stop the code from jumping around when a word is highlit.

Reduce the width, but keep the height so the top of the highlight coincides with the top of the line's hover highlight.
Merge a large spate of UX tweaks. Refs bug 959863.
Merge test_multi into test_multi_tree. I'm not sure how we got 2.

Now, if you want to spin up a multi-tree instance for local testing, run `make` within test_multi_tree.
Include the recently moved templates folder when installing DXR. Stop filtering static items by extension; we want them all.

We were missing several extensions there: *.eot *.ttf *.woff. Let's avoid that maintenance burden. I'm not sure what the motivation for filtering was in the first place. DS_Store?

This bug was causing DXR on stage to not find the config.py.jinja template during instance build.
Rename file-name class to "breadcrumbs", which is more accurate.

We have file names elsewhere, like in folder-listing tables, and there are other things, like folder names, in the breadcrumbs.
Ignore the compiled code in the code2 dirs in multi-tree test instances.
Merge master into ui to get the gitignore root-pinning changes.

I wanted to pull those in before I forgot what I had just done to .gitignore on ui.
Fix the index controller to deal with the new dict-style `trees` config value.