Numerous fixes

* Fixed an error when trying to replace a passage with one from an
imported file.
* Fixed TiddlyWiki emdashes not being rendered correctly.
* Fixed importing from HTML sometimes failing to read passages
correctly.
* Fixed macros.remember.init() crashing due to state not existing yet.
* Reverted the Sugarcane word-break change due to it not working
correctly in Firefox.
* Fixed HTML tables in passages not being constructed correctly.
* Sugarcane: Added warning alert that's displayed if pushState() or
replaceState() throws an error.
* Upped version number to 1.4.1.
Three engine fixes

* Reverted the Array.prototype.toString alteration.
* Fixed <<nobr>> macros inserting troublesome zwsp characters into
nested macros' arguments.
* Fixed the [img] syntax used in CSS stylesheets inserting a terminating
semicolon, preventing further attributes from being used on the same
line.
* [Note for previous commit] Re-instated syntax parsing for link text
again.
Altered Sugarcane history to use SessionStorage

One problem with storing past history states using
window.history.pushState() is that Firefox places a 640kb limit on the
data passed to it - a limit which could crash a Twine game with many
variables and data structures. This is actually for good reason - web
apps with heavy state should invoke SessionStorage rather than just
pushing it to browser history. So, SessionStorage usage has now been
implemented.
Small fix to previous commit

Accidentally broke setter links.
Link arrows for shorthand <<display>> macros

Passages invoked through shorthand <<display>> macros now also cause
corresponding arrows to be drawn on the passage map. These invocation
macro tags are also syntax-highlit blue.

Also fixed unmatched <<endif>> and <<endsilently>> macros not being
coloured red.
Three sly fixes

* Fixed external links crashing.
* Fixed "Import from HTML" choking on passages with no text.
* Fixed <<endnobr>> consuming the three characters that come after it.
* As an extra fallback, window.onerror is now set to issue a one-time
alert() signifying that all is not well.
Image preloading + Responsive changes

* Inserted engine code that causes external images to be preloaded, in
case people still want to use external images for whatever reason.
* Removed Responsive's Respond.js polyfill, because it doesn't work too
well with Twine's dynamically inserted stylesheets, and it's unlikely
most people will even use it.
* Changed Responsive's footer to a sticky footer, like God and all His
hideous bat-faced angels originally intended.
Image preloading + Responsive changes

* Inserted engine code to preload external images, in case people still
want to use external images for some reason.
* Fixed some IE8 crashes.
* Removed Responsive's Respond.js code, since it doesn't work with
<style> elements.
* Altered Responsive's CSS to make it a bit easier to change
* Made Responsive's footer into a sticky footer, like God and all His
hideous bat-faced angels intended.