Port to Requests

This probably still needs some work so I probably wouldn't merge it right away.

Currently it requires the argparse PR to be merged first.