- Cleaned up fix to prevent additional nesting
- Added unit test
Fixes error:
```
> splits = [p.partition(b"=") for p in request.body.split(b"&")]
E AttributeError: 'NoneType' object has no attribute 'split'
```
Format with line length 110 to match flake8
make black part of linting check
Update travis spec for updated black requirements
Add diff output for black on failure
update changelog
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.
Add the ability to filter out sensitive data, using one of three
methods: from headers, from a query string, and by using a custom
callback to modify the request.
Closes#67