Updated docs and moved authentication logic

Moved more of the examples to function docs.
Made the get_headers and post_headers private.
Moved authentication logic to separate file.
Changed required Elixir version to include version 1.