Changed the ETagAttribute to expect an object rather than a specific string to make the ETag implementation opaque to users.