generate etag header if not already set. check cache freshness and return 304 if fresh.
Merge pull request #14 from liquidninja24/feature/etag

Add etag support