Flat Design(TM) story map display mode

This originally started as a joke, but in reality, the joke was on me!!!
...Because it actually looks pretty good.
Story map performance boost

* By caching a list of widgets which are currently visible,
StoryPanel.paint() doesn't need to iterate over every widget during each
paint call. This results in a decent performance increase.
Merge branch 'fltdsgn'
Passage warning automatic correction

* The passage warnings system has been updated to allow automatic
correction to be performed on the user's request.
* Added "Verify All Passages" to the Build menu, which checks for
problems in every passage.
* Added a passage warning for misspelling "http://" as "http//" or
"http:/".
* Fixed some colours in Flat Design(TM) mode.
Some polish

* Fixed brief bug where <<if $a >= 2>> etc. wouldn't be highlit
correctly.
* Now, the story filename is in the window titles of passage editor
windows.
* Now, Verify All Passages shows a message if no problems were found.
* Added 'About Special Passages' to the Special Passages submenu.
Added class name setting to inline style syntax

* You can now, in addition to setting styles using the @@ inline style
syntax, also set a class name for the generated <span>, thus making it a
shorthand for <span class="..."></span>. Writing @@.name;...@@ will set
the class of the span to "name". Writing @@.truth.electronic.big;...@@
will give it the "truth", "electronic" and "big" classes. This can also
be mixed with regular styles. This was inspired by TiddlyWiki5's
variation of the TiddlyWiki inline style syntax.
* Altered History.prototype.saveVariables so that the setter link code
is simpler. This fixes a bug where variables in setter links were being
passed by reference rather than value.
Macro regex bugfix

* Refurbished the regex used for macro detection, to better distinguish
quoted and unquoted ">" signs.
* Fixed the bug where the story map wouldn't redraw when using the Find
dialog.