Previously request.headers was a normal dict (albeit with the
request.add_header interface) which meant that some code paths would do
case-sensitive matching, for example remove_post_data_parameters which
tests for 'Content-Type'. This change allows all code paths to get the same
case-insensitive treatment.
Additionally request.headers becomes a property to enforce upgrading it to
a CaseInsensitiveDict even if assigned.