UnicodeDecodeError when trying to install requests on Windows (using Appveyor)

**Version:** 2.16.1

Works fine on [Linux and macOS](https://travis-ci.org/ActivityWatch/activitywatch/builds/236669653).

Has also worked on Windows [in the past (2.14.1)](https://ci.appveyor.com/project/ErikBjare/activitywatch/build/1.0.144/job/5c46bk2929htjn2r).

I'll be attempting a installation of requests 2.14.1 specifically to see if there has indeed been any regression, the [build is here](https://ci.appveyor.com/project/ErikBjare/activitywatch/build/1.0.152/job/fwm5saa4mm0dso5d).

The related issue in my repo: https://github.com/ActivityWatch/activitywatch/issues/52

<details>
<summary>Stacktrace</summary>

```
Searching for requests
Reading https://pypi.python.org/simple/requests/
Downloading https://pypi.python.org/packages/4c/54/1d3abddbd4c7544138b88e8329ef5294ffdc6c5d7ea965bf42e3cc4c9c39/requests-2.16.1.tar.gz#md5=4acb351824461eb3ae1f74ec3a65ff28
Best match: requests 2.16.1
Processing requests-2.16.1.tar.gz
Writing C:\Users\appveyor\AppData\Local\Temp\1\easy_install-qoyp00fn\requests-2.16.1\setup.cfg
Running requests-2.16.1\setup.py -q bdist_egg --dist-dir C:\Users\appveyor\AppData\Local\Temp\1\easy_install-qoyp00fn\requests-2.16.1\egg-dist-tmp-rqjnti7r
Traceback (most recent call last):
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 157, in save_modules
    yield saved
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 198, in setup_context
    yield
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 255, in run_setup
    DirectorySandbox(setup_dir).run(runner)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 285, in run
    return func()
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 253, in runner
    _execfile(setup_script, ns)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 47, in _execfile
    exec(code, globals, locals)
  File "C:\Users\appveyor\AppData\Local\Temp\1\easy_install-qoyp00fn\requests-2.16.1\setup.py", line 51, in <module>
  File "C:\Python35\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 441: character maps to <undefined>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "setup.py", line 18, in <module>
    'https://github.com/ActivityWatch/aw-core/tarball/master#egg=aw-core'
  File "C:\Python35\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Python35\lib\distutils\dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "C:\Python35\lib\distutils\dist.py", line 974, in run_command
    cmd_obj.run()
  File "C:\Python35\lib\site-packages\setuptools\command\install.py", line 67, in run
    self.do_egg_install()
  File "C:\Python35\lib\site-packages\setuptools\command\install.py", line 117, in do_egg_install
    cmd.run()
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 411, in run
    self.easy_install(spec, not self.no_deps)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 654, in easy_install
    return self.install_item(None, spec, tmpdir, deps, True)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 701, in install_item
    self.process_distribution(spec, dist, deps)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 746, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "C:\Python35\lib\site-packages\pkg_resources\__init__.py", line 851, in resolve
    dist = best[req.key] = env.best_match(req, ws, installer)
  File "C:\Python35\lib\site-packages\pkg_resources\__init__.py", line 1123, in best_match
    return self.obtain(req, installer)
  File "C:\Python35\lib\site-packages\pkg_resources\__init__.py", line 1135, in obtain
    return installer(requirement)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 673, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 699, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 880, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 1119, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "C:\Python35\lib\site-packages\setuptools\command\easy_install.py", line 1105, in run_setup
    run_setup(setup_script, args)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 258, in run_setup
    raise
  File "C:\Python35\lib\contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 198, in setup_context
    yield
  File "C:\Python35\lib\contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 169, in save_modules
    saved_exc.resume()
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 144, in resume
    six.reraise(type, exc, self._tb)
  File "C:\Python35\lib\site-packages\six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 157, in save_modules
    yield saved
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 198, in setup_context
    yield
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 255, in run_setup
    DirectorySandbox(setup_dir).run(runner)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 285, in run
    return func()
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 253, in runner
    _execfile(setup_script, ns)
  File "C:\Python35\lib\site-packages\setuptools\sandbox.py", line 47, in _execfile
    exec(code, globals, locals)
  File "C:\Users\appveyor\AppData\Local\Temp\1\easy_install-qoyp00fn\requests-2.16.1\setup.py", line 51, in <module>
  File "C:\Python35\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 441: character maps to <undefined>
```
</details>

The build has now progressed beyond the place where it erred previously, so 2.14.1 seems to work fine.

I think the fix from f3d310b299af587d668493f09d82c84c197d00fd needs to be adapted to the change in 3e32356716572e59c9f10c6c2622bedf5f48b07e.

@tdsmith we no longer load that file that way any longer. 

https://github.com/kennethreitz/requests/blob/master/setup.py#L50-L51 appears to still be loading a file with some unicode in it.

Unfortunately, "You can't use a PEP 263 declaration in Unicode text passed to exec". It results in a SyntaxError. `SyntaxError: encoding declaration in Unicode string`. Quite frustrating. 

I'll see if I can drop the  PEP 263 declaration and have things still work alright on most systems. 

Does anyone have the unicode literals for these emojis? ✨🍰✨ :P

It looks like you can pass bytes to exec() in 3.6; maybe opening the file in binary mode with the PEP 263 declaration intact is good?

Also '\u2728\U0001f370\u2728' I think

@tdsmith lifesaver!

I'm going to try passing it as unicode and see if that fixes up things for appveyor over here

k, changes landed in master for this. not sure if they'll actually effect anything, but... 

No further reports of this being an issue, so I'm going to close this until we hear otherwise.