Stop relying on a regexp for version parsing

Move all of our metadata into `requests/__about__.py` while keeping a
backwards compatible aliasing of metadata attributes. Also use this to
specify metadata in our setup.py

Closes #4057 

---

For what it's worth, I based this off of [pypa/packaging](https://github.com/pypa/packaging/blob/master/setup.py)

# [Codecov](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=h1) Report
> Merging [#4058](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=desc) into [master](https://codecov.io/gh/kennethreitz/requests/commit/037108178c1fcc4484f5ccb16e390636ef02a7e6?src=pr&el=desc) will **decrease** coverage by `1.59%`.
> The diff coverage is `100%`.

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

```diff
@@            Coverage Diff            @@
##           master    #4058     +/-   ##
=========================================
- Coverage   89.75%   88.16%   -1.6%     
=========================================
  Files          15       16      +1     
  Lines        1942     1943      +1     
=========================================
- Hits         1743     1713     -30     
- Misses        199      230     +31
```


| [Impacted Files](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [requests/\_\_about\_\_.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvX19hYm91dF9fLnB5) | `100% <100%> (ø)` | |
| [requests/packages/chardet/compat.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvcGFja2FnZXMvY2hhcmRldC9jb21wYXQucHk=) | `64.86% <0%> (-35.14%)` | :arrow_down: |
| [...es/urllib3/packages/ssl\_match\_hostname/\_\_init\_\_.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvcGFja2FnZXMvdXJsbGliMy9wYWNrYWdlcy9zc2xfbWF0Y2hfaG9zdG5hbWUvX19pbml0X18ucHk=) | `80% <0%> (-13.55%)` | :arrow_down: |
| [requests/\_internal\_utils.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvX2ludGVybmFsX3V0aWxzLnB5) | `93.75% <0%> (-6.25%)` | :arrow_down: |
| [requests/models.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvbW9kZWxzLnB5) | `91.15% <0%> (-2.27%)` | :arrow_down: |
| [requests/sessions.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvc2Vzc2lvbnMucHk=) | `93.23% <0%> (-0.72%)` | :arrow_down: |
| [requests/adapters.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvYWRhcHRlcnMucHk=) | `92.45% <0%> (-0.48%)` | :arrow_down: |
| [requests/utils.py](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=tree#diff-cmVxdWVzdHMvdXRpbHMucHk=) | `86% <0%> (-0.25%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/kennethreitz/requests/pull/4058?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/kennethreitz/requests/pull/4058?src=pr&el=footer). Last update [0371081...108dfa9](https://codecov.io/gh/kennethreitz/requests/pull/4058?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


oh damn i did this too

Closing for #4059. @sigmavirus24 it would have been good to comment on #4057 when you started working on this, as I checked there before doing so :)