Python 3 fixes: switch to SockJS-Tornado.

Tornadio2 doesn't work with Python 3.  There is a patch, but Tornadio2
is also unmaintained.
Python 3 fixes: apply 2to3 changes.
Python 3 fixes: streams now use bytearrays, which are not strings.
Merge remote-tracking branch 'yipdw/python3' into python3/development

Conflicts:
	seesaw/__init__.py
Updates readme, requirements.txt, shebangs for Python 3.
More 2to3 fixes.
Updates travis config for Python 3.
Updates setup.py requirements.
Renames to run-pipeline3 for 2 and 3 coexistance.
Merge branch 'master' into python3/development

Conflicts:
	seesaw/__init__.py
Fixes unique_id_str() str'ing a bytes obj. Bumps Version 0.1.6b2.
Add on_cleanup event to pipeline.

Some pipelines (i.e. ArchiveBot's) run threads that, if not terminated,
will prevent the usual touch STOP mechanism from stopping a pipeline.
Such pipelines need a way to be told "hey, the runner's about to stop,
so do whatever you need to do to prepare for shutdown".  This commit
adds such an event and makes SimpleRunner (i.e. what most Seesaw
sessions use) trigger it.

(Because this event requires runner-pipeline interaction, other Runner
subclasses will have to be sure that they trigger it.)
Merge pull request #56 from yipdw/cleanup-event

Add on_cleanup event to pipeline
Mock warrior scripts uses ports less likely to conflict.
Uses UTF-8 on subprocesses. Falls back to ASCII if stderr writing fails.

Re: ArchiveTeam/seesaw-kit#47.

Conflicts:
	seesaw/externalprocess_test.py
Bumps version to 0.1.7b1.
Port fixes from merge to Python 3.
web.py: Put back line mistakenly taken out on prev commit.
externalprocess_test.py: Removes u prefix for Py3.2.
sys.stdout.flush() to avoid buffering when redirecting seesaw output

(cherry picked from commit 5bf9f7f5c45516d7533d48fabdf550b10e4f2114)

Conflicts:
	seesaw/runner.py