Introduce StaticFileHandler.(get_content|set_headers) which reduces the
complexity of the HTTP GET handler of static resources.
Fixed syntax error in the altered StaticFileHandler.get() method
Move retrieval of absolute path to separate method which is also in
charge of validation.
Cache the computed absolute path to the requested resource in
StaticFileHandler. The cache is cleared on_finish of each request
in order to ensure recomputation on each request.
Use 'get_version' to calculate static file hashes.
(incomplete) Honnoring Range request header
Fix bytes/str issues
Set Accept-Range header, return 406 on invalid range
Tests for Range header
Handle negative byte ranges
Return HTTP 416 Range Not Satisfiable, not 406
Fixing errant paren, missing format value
206 in response to Range, refactor ETag checking
Merge remote-tracking branch 'wolever/accept-range-in-static-file-handler' into merge
Merge remote-tracking branch 'birknilson/refactoring/reduce_statichandler_complexity' into merge

Conflicts:
	tornado/web.py
Rough merge of the birknilson and wolever StaticFileHandler branches.

Some of Birk's new methods become classmethods so they can be used
in get_version.

This silences the warning logged in CustomStaticFileTest.
Cleanups after the big StaticFileHandler merge.

Some reshuffling of logic between class and instance methods.
Document recent additions to StaticFileHandler.

Make httputil's range functions private.
Add back a lost call to abspath (which may or may not cause test failures
depending on how they were run).
Add method StaticFileHandler.get_content_version.

This method is easier for subclasses to override (the base class still
handles caching) and lets us use the post-validation absolute path,
fixing some issues with default_filename support.

Improve StaticFileHandler test coverage.