Require tornado>=3.0.

Re: ArchiveTeam/seesaw-kit#55
externalprocess.py: Add AsyncPopen2 adapter and use it for ExternalProcess

Closes ArchiveTeam/seesaw-kit#55
externalprocess_test: Decode data as UTF-8 as output is always binary now
templates: Remove redundant escape()s
externalprocess: Set exit callback last to avoid hang