Added 'Test Run' build option

* 'Test Run' builds the game to a temp file, letting you run the story
without having to have saved it to a specific filename first.
* Moved the build options out of the Story menu into a Build menu.
* Fixed a bug that occurred when StoryIncludes included older .tws
files.
Added 'Test Run From Here' option

This option creates a temp test build and uses the selected passage as
the start passage. This permits expedient testing of deep parts of the
story. This option is available in the Build menu and also in the
passage right-click menu.
Altered uninitialised variable defaulting

Altered the code that defaults uninitialised variables used in <<set>>,
<<if>> and other macros to 0. Now, it's centralised in Wikifier.parse()
and should correctly handle array variables, variables touching
operators, and other things.
Slight optimisation to variable defaulting

Now, if a variable occurs multiple times in a macro's expression, it
should only be defaulted once by the injected code.

Also, fixed a few fullArgs() calls.
Merge branch 'quickbuild'
Fixed buildexe.py and StoryFrame errors

buildexe wasn't copying the JS files correctly.
Fixed inline-style highlighting and final builds

* Syntax highlighting for the inline-styles syntax no longer overrides
all containing elements' styles.
* Fixed the Build Story option silently failing.
Syntax highlighting double-square-bracket strings

Altered the syntax highlighter to correctly recognise
double-square-bracket string arguments.
Modified Jonah's behaviour

This updates Jonah's idiosyncratic engine in the following manners:
* All passages are now added to the bottom, regardless of where you
click the link.
* Clicking a link to a previously displayed passage will display a new
version of the passage at the bottom, instead of scrolling up to the old
version.
This is based on a patch I've authored based on code by Stormrose
(http://www.glorioustrainwrecks.com/node/5136) and results in more
intuitive and desirable stretchtext behaviour. I'm so confident that
authors would rather have this than Jonah's former TiddlyWiki-esque
behaviour, that I'm not even leaving any trace of the old behaviour
behind.
Fixed Jonah crash

Fixed Jonah crashing on startup. Also fixed the unclassed <a> element
CSS from affecting the passage toolbar links.
Added tooltips to rendered error messages

throwError() now has an optional tooltip argument, which sets the title
text for the whole error span. For the built-in macros, it consists of
the macro invocation's code.
Variable lists in Story Statistics + syntax fixes

* Story Statistics now lists all the variables used in macros in the
story.
* Fixed syntax highlighter treating Javascript constants NaN, true, etc.
as case-insensitive.
* Syntax highlighting regexes now use re.U for Unicode awareness.
* Fixed support for the <<elseif>> formulation of <<else if>>.
Updated <<display>> to allow code parameters

* <<display>> now accepts code parameters, such as variables and
functions. <<display $value>>, for instance, can be used.
* Also removed the "_previous" parameter, replacing it with a previous()
function which can be used instead - not just in <<display>> but in
other macros, too.
* Altered visited() to allow multiple parameters. It now returns the
minimum visited value of all parameters (and thus "visited('a','b') can
function as a shorthand for "visited('a') and visited('b')").
* Added either(), a simple randomness function that can be used in
several macros, and is, I feel, more readily adaptable than a randomness
macro. It returns one of its parameters, randomly.
Variables in the link syntax

You can now use variables and expressions in the link syntax, such as
[[$door]] or [[Climb|"Climb" + $var]]. This works like so: if the
passage name is not found, it tries to parse it as a code parameter. If
this successfully returns a value, it is used as the passage name. This
is not a change I am making lightly, but I believe it to be the best
course of action.

* The syntax highlighter now tries to recognise code parameter links. It
currently just looks for $variables, or functions(), but is (much like
with external links) not comprehensive.
* Now, links in the image syntax are recognised as valid outgoing links
in the IDE.
* Altered the variable regexps to exclude all-digit variable names.
StoryIncludes interacts with Auto Build better

* Altered Auto Build so that the list of files it checks for changes is
determined by StoryIncludes.
* Also fixed a bug where StoryIncludes wouldn't work if it only
contained one line.
Merge branch 'jonah3'
Merge branch 'variable-links'
Enforce unique passage titles

* Passage titles must now be unique. The passage title input will turn
red to indicate non-uniqueness.
* This also applies to passages added via imported source code, and also
to imported images.
* Engine: the data-tags attribute is now applied to the body element as
well as the rendered passage element.
An alternative Tag CSS approach

Now, taking a stylesheet passage and adding an extra tag to it (in
addition to "stylesheet") will cause that stylesheet to only be applied
for passages with that given tag.

This, I feel, is a bit tidier than the old Tag CSS method - the
'[data-tags]' selector need not be repeated dozens of times in a
stylesheet, and applying only to the 'body' or '.passage' selectors.
Although, it is slightly less flexible w/r/t tag hierarchies - the
':not[data-tags]' selector can't really be replicated.

The CSS hooks for the old method will remain for
backwards-compatibility, as they are relatively unobtrusive.
Tweak to make overlapping arrows more visible

Arrows will now be offset by a certain amount depending on their angle.
This makes bi-directional linkups more easily visible. Admittedly it
becomes indistinct at precise 45-degree angles, though.