Docstring explaining when HTTPError is/is not raised

This is mostly to tell the reader about when HTTP error must be handled, and to better link to the other places in the doc. where this is explained.

# [Codecov](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=h1) Report
> Merging [#4947](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=desc) into [master](https://codecov.io/gh/requests/requests/commit/67a9ed47aec4f9f8280e58e4e05e3a753f62ae15?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/requests/requests/pull/4947/graphs/tree.svg?width=650&token=mZGswIiXLa&height=150&src=pr)](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master    #4947   +/-   ##
=======================================
  Coverage   66.89%   66.89%           
=======================================
  Files          15       15           
  Lines        1577     1577           
=======================================
  Hits         1055     1055           
  Misses        522      522
```


| [Impacted Files](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [requests/exceptions.py](https://codecov.io/gh/requests/requests/pull/4947/diff?src=pr&el=tree#diff-cmVxdWVzdHMvZXhjZXB0aW9ucy5weQ==) | `17.14% <ø> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=footer). Last update [67a9ed4...fea839f](https://codecov.io/gh/requests/requests/pull/4947?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Thanks for the contribution @jerojasro and trying to improve the documentation!

Personally, I'm not sure I understand _why_ this change is helpful. From what I can understand from the analytics of the requests documentation, most people don't read up on exceptions first and instead can understand the content of this from the examples and documentation already available. I feel like this is a solution in search of a problem. I'm going to close this due to its age but it can be re-opened if you want to help me understand your reasoning here and maybe workshop a different update


hello @sigmavirus24 ; my goal here is to better explain what is (and isn't) an HTTPError, since I think the current docstring is way too terse.

Reading back what I wrote, perhaps the last paragraph is unnecessary, but I think the change to the main sentence (An HTTP error (status code >= 400) occurred.) is what's important. I added that because to me (and I'm assuming here also to any non HTTP-protocol experts) is not immediately obvious what is meant by HTTP error, whether that includes timeouts, network issues, TLS issues, etc., which to a beginner might all land in the same category, even though for request's authors they do not.