Enhanced Tweelexer and external passages.
* Populate externalPassages set using existing buildIncludes method.
* Lexer highlights link to found external passage as good.
* Remove found external passages from broken links list.
* Dont show broken link emblem if all internal and external passages
found.
Conditional charspan generation

* Now, charspans are only generated if the story passages contain either
".char" or "[data-char", which should be enough to sniff for
charspan-selecting CSS. I didn't think charspan generation was all that
much of a performance hit, but OK.
* Reverted the <br> removal, on the basis that using only white-space:
pre-line messes with text copied from passages. Hrm.
* Added the "hidden" HTML attribute to the storeArea div.
Variables in image syntax + other fixes

* It should now be possible to supply variables to the image syntax, as
an image passage name - for instance [img[$pictureName]].
* Shorthand <<display>>: variable default was causing $vars provided as
arguments to mess up horridly.  This should fix this.
* Made a number of macro error messages a little better - displaying "$"
instead of "state.history[0].variables." when referring to the macro
invocation.
* StorySettings: fixed the Obfuscate checkbox using "on" instead of
"swap".
Added system for encoding functions applied when converting to HTML

At the moment only obfuscation is done with such function, but other
functions can be added in the future.
Simplified creation of HTML tag for a tiddler

Use join and interpolation instead of appending to a string. This is
faster and (in my opinion) clearer as well.

'self.pos' is always defined, no need to test for it.
'now' wasn't used at all.
Made position parsing more robust

Check that there are 2 coordinates.
If one of them is not an integer, ignore them instead of breaking.
IE 8 support for <style> in passages

* Fixed a bug where IE 8 would turn <style> elements in passages into
<div>s.
* The exitprompt StorySetting is now off by default in the engine as
well as the IDE.
* Responsive: Fixed the bug where a blank rectangle would remain if the
bookmark link was disabled in StorySettings.
* Added an Array.prototype.forEach() polyfill to engine.js, as a number
of custom scripts seem to use it.
Merge pull request #137 from mthuurne/to_html

Refactoring of toHtml code
Description StorySetting

* Fixed an error introduced in previous pullreq.
* Added a "description" StorySetting which provides text to use for a
<meta> description element. I've noticed that often Google will, at a
loss to find the game content, display odd bits of the storeArea div as
a page description in its results, which is most definitely not a good
look. Maybe this will fix things.
Three minuscule fixes

* Reinstated the blank <a> elements around the Rewind and Restart
buttons. Their absence was causing too many CSS quirks for my pride to
justify.
* StorySettings: fixed bug caused by leaving the Description blank.
* Jonah: rewind links now have the class "toolbar-rewind" instead of
"toolbar-rewind to here".
Removed the ObfuscateKey StorySetting

* Removed the 'obfuscatekey' storysetting. Concern has been raised that
the obfuscate option is misleading regarding its purpose: it may lead
authors to assume it is meant as security, rather than as a basic
spoiler protective. So, now it solely uses rot13. HTML files encoded
using an obfuscatekey prior can still be imported.
* Removed String.prototype.unDash.
* Added a rot13() function, used internally to decode rot13 obfuscated
passages, and also of potential use to the author.
* Fixed a bug where the addition of the 'hidden' property to the
storeArea div caused HTML importing to break.
* Fixed some StorySettings dialog glitches.
Bugfixes for the previous commit
Added bookmark()

* The bookmark() function lets the author create Bookmark links in their
passages by simply doing [[Bookmark|bookmark()]]. Hopefully it works
out.
* Fixed bugs in engine.js relating to bullet-point syntax, and reading
the Obfuscate StorySetting.
* Now, HTML files created via Test Play From Here won't override any
bookmark hashes applied to the end (for testing purposes etc.)
* Now, the StorySettings passage's text is stripped of the old
ObfuscateKey value, as well as old comment lines.
Syntax bugfixes

* A close-bracket in a link's expression, such as [[ $arr[0] ]], should
no longer be considered invalid.
* A double-right-chevron in a macro's argument, such as <<print ">>" >>,
should no longer terminate the macro tag prematurely.
Passage editor helpers

* Now, when you close a passage that contains broken links, Twine offers
to create the new passages that each link refers to.
* Now, when you close a passage that contains the [img] syntax with an
external image, Twine offers to import the image into the story. If it
does so, it replaces the URL in the passage text with the imported
passage's name.
* Added "Test Play From Here" to the passage editor's Passage menu.
Fixed Sugarcane rewind menu bug

* This should fix the bug where setter links' variable changes don't
work when backtracking via Sugarcane's Rewind menu.
* This also hopefully fixes the bug where, when using HTML5 history, the
deserialised history array's contents lacked the Passage prototyping.
* Added Passage.prototype.toJSON() to fix the above, which simply
reduces passages to their ID number. This also means that the serialised
game state used for HTML5 history is now a tad smaller.
* Also altered the names of a few engine variables here and there.
Merge pull request #128 from greyelf/i014_tweelexer_ext_passages

Tweelexer and external passages (initial effort)
Forbid assignment = in <<if>> clauses

I want to try making the <<if>> macro print an error if the = sign is
used in one of its clauses, because a bunch of people keep getting bit
by its ambiguity. You might think "well, why not Do What I Mean and
auto-substitute the = for an ==?", but right now I feel doing that would
result in more destructive false-positives than currently, and would of
course encourage the bad habit of not using "is" (or "==" or "===" or
"eq").
Some external passage follow-ups

* Added a mauve emblem denoting that the given passage contains links to
StoryIncludes passages.
* Links to known StoryIncludes passages are now syntax-highlit mauve.
* Altered a number of findWidget() calls to become passageExists()
calls.
* Removed the testdata folder, as it was going unused.
* Fixed a bug where including passages from a .twee file would fail due
to them lacking a pos.
* Fixed the version numbers in install.nsi.
Preferences for passage editor helpers

* Added Twine preference checkboxes for the create passage helper and
the import external images helper.
* Fixed bug where the create passage helper would consider external URLs
as broken links.
* Changed "View Last Build" into "Rebuild and View", which rebuilds the
story before showing the build.
* Added "Paste Passage Here" to the Story Map's right-click menu. Use it
to paste a copied passage to a particular location.