improve ETag matching

Only allow "W/" for weak ETags (not "w/"). Also make sure there aren't
bad characters outside the quotation marks. See

http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11