Better defining how the "auth" option works

- Adding more docs and type information
- Defining how auth works and how to create custom auth schemes
- Removing custom auth stuff from the CurlFactory