add etag support and if-none-match/if-modified-since to cocoa http handling