Patch support 12

1) Resolves #26

2) both etag and last-modified functions, if implemented, can return a nil value in header if the function returns a nl value. Please consider not returning the header if the value returned is nil. In this PR, the functions are wrapped in an if-let form.

3) Depending on feedback from @ordnungswidrig, I will follow up with a PR for documentation