Fixed #10190 -- make charset in HttpResponse customizable

``HttpResponse``s charset is now depending on its ``Content-Type`` header key.
If no charset is found there, it falls back to the ``DEFAULT_CHARSET`` setting.
we shouldn't reorder kwargs due to the possibility of users passing them as positional args (as the test update you made indicates)