Implementing an LRU cache for Etag validation, created `this.etag()` for standard Etag generation, fixed `this.write()` Etag response

Minor change to Etags

Minor changes
Merge pull request #127 from avoidwork/edge

Major refactoring, API change