Header-supplied passage widget colours

* Header.py now has a passageTitleColor method which can provide colours
for passage widgets' title bars. It takes a Tiddler object as its
argument.
* The colours for stylesheets, scripts, info passages, and others whose
meaning is only really determined by the runtime engine, are now defined
in the base header.
* Tweelexer: renamed badLinkStyle to linkStyle and made it a TweeLexer
static method.
* The Twine app's version number is now in the window title.
* Fixed a bug where passages with external links but no internal links
would not be given the "terminus passage" colour.
StoryIncludes passage list updated on startup

* Renamed most all codebase instances of "external", used to refer to
passages in included files, to "included".
* The internal included passage list, used for link highlighting, etc.,
for each story is now assembled whenever the story is opened, rather
than remaining empty until a build.
* TweeLexer's external link checker now requires all relative-path URIs
to begin with "/". This is a concession that it's altogether too hard to
distinguish relative URIs solely by the placement of a period.
* Darkened the link connector arrows a tad, again.
State serialisation improvements

* The Story___ passages are no longer forbidden from being included via
StoryIncludes.
* The story state serialisation functions have been rewritten to allow
basic JS functions to be stored. (Of course, this relies on function
decompilation, so bound and native functions will silently fail. And,
when recompiling them, their original scope is lost.)
* Also, the clone() function has been updated to hopefully allow certain
native objects to be cloned more effectively.
* Added an Array.isArray() polyfill.
* Altered all internal eval() calls to be run by an internalEval()
function, thus making the eval scopes slightly more uniform (and
centralising the 0, object literal kludge).
* The engine now records the previous value of window.onerror, and
restores it once the message has been displayed once.
Altered passage editor tab width

The passage editor now uses a four-space-wide tab width.
Changed "passage" HTML attribute to "data-passage"

* Renamed the "passage" HTML attribute to "data-passage".
* Removed the "imgpassage" custom HTML attribute. Instead,
"data-passage" serves that role whenever it's used on an <img>,
overriding the linking.
* The Story Map now recognises data-passage attributes, and draws link
arrows in response to them.
* The body text element in the passage editor pane now has initial
focus.
* Fixed an image editor pane crash.
Story format CSS split + engine improvements

* Sugarcane and Jonah: separated all of the engine-specific CSS from the
stylistic CSS. The intention here is that the latter can in future
versions be foregone entirely and replaced with something else if the
author chooses.
* Changed all the element onclick references to
addEventListener/attachEvent calls.
* visitedTag() can now take a string of space-delimited tags, as an
alternative to several strings or an array.
* Added random() from Twine 2 and SugarCube.
* Fixed a bug where Jonah would crash when restarting a story.
* Added a "javascript:;" href to Jonah toolbar links which normally do
not have one.
* Added an Object.create() polyfill, primarily to make clone() work more
consistently.
Removed whitespace on empty lines in tweelexer.py
Split TweeLexer class

There is a new TweeStyler class, which does what the old TweeLexer
class did: apply styles using wx controls. The TweeLexer class is
now an abstract base class for TweeStyler and VerifyLexer.
Put TweeStyler class in its own module

TweeStyler depends on wxWidgets, while the tweelexer module is used by
the command line "twee" tool as well, which shouldn't depend on any
GUI toolkit.
"Don't use default CSS" StorySetting

* Added a StorySetting that lets you remove the aforementioned stylistic
CSS for each story format, giving CSS authors a clean(er) slate to work
with. (Note: Responsive currently doesn't implement this.)
* Engine: Added an extra few checks to main()'s sanity checker, to
ensure that macros, prerender and postrender aren't replaced with
non-objects, or (for the latter) given non-function properties.
* The Help menu for the Passage editor now contains different items if
you're editing a script, stylesheet or regular passage. (Note: this is
only set when you open the pane - changing the passage's role by
altering its tags won't alter the menu immediately.)
Split CSS for Responsive

* Responsive's CSS is now split, enabling the default CSS to be omitted
using the aforementioned StorySetting. Great!
* Tweaked the 'no macro' error message to account for the new
<<display>> shorthand.
Merge pull request #142 from mthuurne/twee_no_wx_2

Don't require wx to run twee
Macro inequality expression check

* Added a passage verification check for invalid expressions similar to
<<if $variable > 2 and <= 4>> - that is, [boolean operator] followed by
[relational operator], with no expression in between.
* Fixed syntax highlighting for macro invocations containing the >
operator.
Regex and styling fixes

* Hopefully fixed a bug with the macro regex that hindered performance
badly when an unclosed << occurred before a decent number of " marks.
* Also fixed the bold, underline and italic syntax highlighting.
* Removed the 'labeldefault' parameter from <<back>>/<<return>>, on the
basis that it was largely undocumented, unusable due to a bug, and (the
real reason) it doesn't work with state serialisation.
Runtime loading bar

Added a basic loading bar to the story formats, for stories that have a
heavy filesize due to image/font inclusion. It's just a thin coloured
strip on the window-top, in the style of YouTube circa 2014. It updates
based on how many of the #storeArea's nodes have been inserted.

Let no confusion reign: this involves no external file tracking. It is
simply the sole HTML file reporting how much of *itself* has been
downloaded.

Of course, to keep track of this, the runtime needs to know how many
nodes will be in the #storeArea on the outset. So, the story formats'
HTML templates now have a "STORY_SIZE" token that is replaced with the
number of passages in the story at build time.
Tweaked macro error messages

* The error messages should now mention the origin macro more
consistently. (The <<set>> macro still cannot, as its 'run' method is
also used by setter links.)
* Code macro error messages should no longer include converted
Javascript error listings that are nigh-unreadable to most users.
* Implemented support for the data-setter property to inline HTML, as
introduced by SugarCube.
* Made the error message colour slightly less saturated in Sugarcane.
* Fixed an obscure bug: where <<else if ...>><<endif>> tags were flush,
the <<endif>> was seen as missing.
Fixed variable links in the StoryMap

* Now, variable/function links cause the passage to have the 'included
passage links' emblem instead of the broken links emblem. They also no
longer have the 'end passage' colour if they're they only kind of link
present.
* Fixed a HTML import bug where the passage immediately after the
StorySettings passage in the HTML storeArea wasn't being imported.
* Fixed some of Responsive's CSS.
Some scant fixes

* Fixed a bug where StoryInit wouldn't work if you used Test Play From
Here.
* Fixed a syntax highlighting bug where the new .class support for
inline styles wasn't acknowledged.
* Now, selecting "No" for the passage verifier's "Keep checking?" dialog
will still close the passage if it was originally going to do so.
<<elseif>> bugfix

* Fixed a bug where the aforementioned error message update broke <<else
if>>.
* The IDE error dialog now contains a five-line Python traceback,
instead of just the single exc_info value.