Remove byte order markers when reading input files

By using the "utf_8_sig" encoding, byte order markers (if any) are
removed from input files as they are read.
Added updated version of "twee" command line compiler

Having Twee in a separate package doesn't really work, since various
components such as TiddlyWiki and Story Formats do not stay in sync
with Twine. It is better to share the same code and data between the
command line compiler and the GUI.

Differences compared to the old "twee":
- dropped options: plugins, RSS generation
- added option: override start passage
- multiple merge files allowed
- "sugarcane" as default target
- all error messages are written to stderr
Deduplicate version string

Create a dedicated module for the version string, so it exists in a
single place. This simplifies version bumps and avoids mistakes.
Merge branch 'master' of https://github.com/webbedspace/twine
CSS @import hoisting

* CSS import declarations are now hoisted to the top of the <style>
element, thus causing them to work regardless of which stylesheet
passage they're included in.
* Altered window.onerror to print the stack trace if it's available
(currently only in Chrome).
* Fixed the regexes in Passage.prototype.preloadImages, which didn't
detect whitespace correctly.
* Added a check in case an author accidentally uses Passage() instead of
passage() in a story.
Merge branch 'master' of https://github.com/webbedspace/twine
twee: Convert tabs to spaces

This was already done on "*.py", but the "twee" script doesn't have
a file extension.
twee: Print usage syntax when called without arguments

Previously, it would complain about no source files being specified
and would only print the usage syntax when argument parsing failed.

Also removed superfluous newline from "no source files" message.
twee: Removed adding "lib" dir to system path

There is no directory named "lib" in the Twine source tree.
twee: Force UTF8 output if stdout is redirected

The typical way of using "twee" is to redirect its output to an HTML
file. However, such a redirect will use ASCII encoding unless
overridden by the PYTHONIOENCODING environment variable. Therefore it
would break if the output contains Unicode characters.

To avoid that, check whether we are outputting to a tty or to a file
and in the latter case, explictly encode as UTF8 (with BOM).
Fixed displaying of long titles in PassageFrame
Merge branch 'master' of https://github.com/webbedspace/twine

Conflicts:
	targets/engine.js
Removed leftover crud from merge collision.
Merge branch 'master' of https://github.com/webbedspace/twine
twee: Removed HTML merge feature

The feature is not useful for story authors.
Read this forum thread for some background:
  http://twinery.org/forum/index.php/topic,1463.0.html
twee: Fix preservation of passage order

This feature was introduced in 4a038af9, but I broke it in bba0e147
when I did the tabs to spaces conversion on the wrong version of the
"twee" script (the part in tiddlywiki.py survived).
Merge branch 'master' of https://github.com/webbedspace/twine
Merge branch 'master' of https://github.com/webbedspace/twine
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.
Merge branch 'master' of https://github.com/webbedspace/twine