Set up CI with Azure Pipelines

Currently, CI and PR validation are run on AppVeyor and Travis using pretty different configurations.  This PR shows how [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) could be used to unify the pipeline configuration and run CI and PR checks more quickly. Azure Pipelines offers unlimited minutes with 10 parallel jobs.

The first commit attempts to match the AppVeyor and Travis builds apples to apples. You can see in the [build results](https://dev.azure.com/kaylangan-github/kangantest-requests/_build/results?buildId=229&view=logs) that Azure Pipelines typically runs the Linux jobs in <2 minutes and the Windows jobs in ~5 minutes. The Linux jobs are slightly faster than on Travis; the Windows jobs, though individually slower than on AppVeyor, are faster because of the additional parallelism.

The second commit unifies the build using a single configuration. CI is run only on Linux and coverage only on Windows. Here's an example of the [build results](https://dev.azure.com/kaylangan-github/kangantest-requests/_build/results?buildId=245&view=logs). I also hooked up test reporting for the Linux builds which you can see [here](https://dev.azure.com/kaylangan-github/kangantest-requests/_build/results?buildId=245&view=ms.vss-test-web.test-result-details):
![image](https://user-images.githubusercontent.com/20052233/48370045-25dc4980-e686-11e8-9d05-ec50571a5d75.png)

I was a little concerned that the Windows builds appear to fail intermittently, but I noticed that AppVeyor seems to have the same flakiness?

Would you consider trying out Azure Pipelines and adding it as additional validation for PR/CI?

Disclaimer: I'm a Program Manager on Azure Pipelines.

# [Codecov](https://codecov.io/gh/requests/requests/pull/4869?src=pr&el=h1) Report
> Merging [#4869](https://codecov.io/gh/requests/requests/pull/4869?src=pr&el=desc) into [master](https://codecov.io/gh/requests/requests/commit/bedd9284c9646e50c10b3defdf519d4ba479e2c7?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/4869/graphs/tree.svg?width=650&token=mZGswIiXLa&height=150&src=pr)](https://codecov.io/gh/requests/requests/pull/4869?src=pr&el=tree)

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



------

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


:sparkles: :cake: :sparkles:

We’ve been very happy with Azure Pipelines for Pipenv!

Could you sponsor the ‘kennethreitz’ org for free pipelines?

Also, I’m getting this error when setting it up:

> Unexpected vmImage

got it working!

Since the project is public, you're already set up for the free 10 pipelines. Let me know if you need anything else!

I meant for parallel builds :)

Yup, you should be all set! Let me know if you're seeing otherwise.

Thanks so much!

@kennethreitz Can you add @nateprewitt and myself to the "kennethreitz" org for Pipelines? Otherwise, I'm going to ask that we remove this if we don't have a way of modifying/updating the CI bulds.