Added support for express 4.x

Core code comes from https://github.com/mozilla/connect-cachify/pull/42. I took his PR and manually merged the relevant parts. Additional tests added to ensure all of the expresses are *really* being tested.

Original commits:
* 587518018b73c7acc39f411b918635081485d240
* 62a5bd69a9c8ae1a413da2616ab0b7894e2ddbf2
* 5a9b544b7266009dda3edcf0d6cab4ef0bb770a5
* 8ae7c94a48b95838bef130af10cf4337556a665c
* 9c219d1e19cce5944c55816e6b61333c1c4250ca

Thank you very much @kmchugh!
Merge pull request #44 from shane-tomlinson/express4

Added support for express 4.x
Bump the version to v0.0.16
refactor: Large refactor of the middleware, mostly extracting functions and clarifying names.

Extract helper functions:
* is_cachified_uri
* remove_prefix
* get_true_path
* check_exists
* get_expected_hash
* do_contents_match_expected_hash
* clean_options
* set_locals
* set_cache_headers
* remove_other_cache_headers
refactor: More cleanup and simplification.

* Rename `opts` to `_opts` to be consistent with other global variables.

Add more helper functions:
* does_file_match_expected_hash
* get_uri
* should_skip_hashification
* get_predefined_hash
* url_to_filename
* get_resource_hash
* generate_hashed_url
* should_use_development_resources
* generate_tags_for_resources
* rename prod_or_dev_tags to generate_tags_for_filename
Drop node 0.6 from testing, add node 0.10