Merge pull request #7 from jcushman/master

Robust chunked data exception handling.
Cleanup rewrite interfaces to address #13
All rewriters can support either buffered or streaming mode.
In buffered mode, the full text content is written into a buffer
and served with a Content-Length
in streaming mode, text is streamed as it is rewritten and
no Content-Length is written
Default is to stream the response
enable bulk doctest testing via `nosetests --with-doctest`
as well as individual doctests
andd utils.enable_doctests() func which checks if executing
app is nosetests (is there a better a way?)
further refactor steaming of responses related to #13: always create a generator from
response stream, and if buffering, read entire generator into temp buffer
remove duplicate reading logic
pycdx_server initial binsearch module, with support exact match iterator!
fix html_rewriter missing ; on entities
js rewriter: only rewrite full document.domain
PathIndexPrefixResolver using binsearch on path index, for #9
resolvers moved to replay_resolvers.py

improve path-resolver logic: each resolver returns an array of possible
files (could be from primary or secondary storage).
then, iterate over all possible files from all resolvers until
a successful load, or raise exception if all failed
add .travis.yml for Travis CI!
update README.md!
html_rewriter: default attrs without value to empty str value, instead of no value
referer fallback: check for non empty SCRIPT_NAME when parsing referrer
remove pycdx_server pkg for now, move binsearch into pywb package,
update setup.py
use sample settings if driver file not found
update README and comments
improved customization: can setup pywb_init.pywb_config() config,
or specify custom init module <initmodule>.py_config() by
setting PYWB_INIT=<initmodule>
fix run.sh to support testing with custom mount point
-binsearch: add tests, support both prefix and exact loading, for #11
-cdx server first pass for #12: implement cdx parsing and transforming
-operations supported: merge sort, regex filter, resolve revisits, closest sort, reverse sort,
timestamp collapse
timestamp parsing utils
- cdx server bootstrap configured, #12
- pywb_init module inits from ./test directory

misc:
- router has lookahead for '/'
- dechunk even for transparent/binary
- 'text' query mode displays cdx
some tweaks on transfer-encoding: always remove and serve unchunked
(should allow front-end serve can rechunk as needed)
add surt to dependency list
refactor: remove intermediate query object.
rename query -> views
wbhandler queries index, replayer and renders via view

new feature: 'cdx_' modifier can be used to render cdx from any request
more refactoring: seperate top-level handlers (WBHandler) from
views (html, text)
Add CDXHandler for interfacing with cdx server directly, #12
style fixes: convert camelCase func and var names to 'not_camel_case'
WbHtml -> HTMLRewriter
ArchivalUrl -> WbUrl