Fix revalidation logic to match the spec

Add tests for revalidation logic, matching the table on http://m3dev.github.io/octoparts/caching.html

Fix a regression caused by #8 (cached responses were being ignored unless there was an ETag)