Night mode fixes

Restore expando images, more merges, link legibility improved
Night mode tweaks

Improvements for mod pages - log/traffic/edit flair etc, and more merges
Implement ability to sort the subreddit shortcut bar
Also cleaned up some code by refactoring out methods
Reformatting and adding === all over
closing settings console clears settingsnav url hash
RESUtils.inArray(needle,haystack,isCaseSensitive) tests if item is in array of strings

For non-string values, call with isCaseSensitive=true.. that should probably have a more vague name to reflect that obscure usage
RESUtils.inList(needle,haystack,separator,isCaseSensitive) tests if an item is in a delimited string

Default separator is `,` (per option[type=list] conventions).
For multi-subreddits, use separator=`+`

Same as RESUtils.inArray, use isCaseInsensitive=`true` for comparing non-string values
RESUtils.indexNestedArray, RESUtils.indexOptionTable

`.indexNestedArray(...)`, given an array of objects (or arrays), will:

* create a 1:\* key:item, unique-key index for the array's elements on the value of the element's keyIndex/keyFieldIndex property
* return an accessor function which, given a key, returns an item (element) via the index

Key comparison is case-insensitive.

Many keys can map to one item, particularly if the item's key property is a list delimited by `keyValueSeparator`.  `.indexOptionTable(...)` automatically sets this if the key field is [type=list].

If several items map to one key, the index maps the key to the last item.  To hell with many-to-many, although I suppose it would be easy enough to add a "manyToMany" parameter and, when setting the key-index mapping (`index[key] = item`), instead do `index[key].push(item)` if manyToMany is set.  But YAGNI.

---

`.indexNestedArray(...)` is a convenience wrapper around `.indexNestedArray()` for *module option[type=table] value* arrays.
filteReddit.options.allowNSFW now table of [subreddits, where]

Posts from a given list of subreddits can be allowed only when browsing one of those subreddits or a multi-reddit containing a subreddit from that list (`visit`), or everywhere.

---

`modules['filteReddit'].allowNSFW()` contains a few optimizations:

* `.allowAllNsfw` and `.subredditAllowNsfwOption` are only set when `allowNSFW` is called the first time.
* `.allowAllNsfw` remembers if the user is browsing an approved subreddit, to quickly approve all NSFW posts on this page
* `.subredditAllowNsfwOption` (get row from index of subreddit : allowNSFW option row) is theoretically an optimization over iterating over each subreddit in each row of the `allowNSFW` option table for each post in a list of posts from many subreddits
`toggleClass` utility function, equivalent to `jQuery(ele).toggle(cls,toggle)`
nsfw filter toggle while on page improved

That whole mess with an extra stylesheet looked amateur, so I opted for a more integrated, pure-CSS approach.
Refactored NSFWfilter CSS for access from beforeLoad and on click filterNSFW toggle
RESUtils.indexNestedArray renamed to .indexArrayByProperty
RESUtils.inArray(...haystack) renamed to haystacks
to reflect that it should be an array
moved .addNSFWFilterStyle() into .filterNSFW()

Seemed more appropriate to group the "CSS business" logic than leave one in the "event handler" logic
refactor alert message background style into CSS
RES console and bg appears above everything else
RES settings console appears above tips'n'tricks guider
(but below the console)

Fixes #310
Typo causing CSS to collapse