Implemented md5 redirection, 404 for files which don't exist, and redirection from non-trailing slashes to trailing slashes. Made lots of notes for future testing.
Merge branch 'pypi-redirect'

* pypi-redirect:
  Implemented md5 redirection, 404 for files which don't exist, and redirection from non-trailing slashes to trailing slashes. Made lots of notes for future testing.
Implemented index parser and related tests. Need to introduce package structure and ci_config.
Implemented index builder and related tests. Still need to introduce package structure and ci_config.
Isolated the index_builder tests from the index_parser.
Converted pypi_redirect into a Python package which uses fruit_dist.
Index parser and builder can now handle directories and unicode characters.
Unicode links are now discarded.
Added unit tests for all handlers. Still need to add actual handlers.
Added file handler.
Added PyPI index handler.
Added root index handler.
Turned is_index checks into a decorator (@ensure_index).
Added invalid path handler (and test).
Deleted old "simple" prototype. Moved handler files under "handler/" directory. Created main CherryPy dispatch tree.
Removed absolute external links from appearing the the parsed index.
Added tests for PathLengthDispatcher (which was previously Root).
Refactored path length dispatcher tests to use a helper class.
Added missing install requirements to setup.py.
Fixed capitalization of CherryPy as an install requirement.