Attempt to add background job.
Background jobs now send output to builtin console instead of stash
terminal.

Add httpserver.py script for simple http server with upload function.
This script is meant to run as a background job so that it can be
terminated by the close button on interactive prompt page. This allows
the port binding to be released. So the same command can be called again
without having to restart Pythonista.

The stdout redirect now also works for stderr.
Merge branch 'ui-background' into dev
Add which.py and version.py

Revert back to use StringIO instead of cStringIO as the later is not a
class, which creates some type comparison issue.
Fixed a bug that the port to httpserver.py should be optional.
version.py now abbreviates path more properly.
Merge branch 'dev'