extract AuthTokenFile domain object

This refactor centralizes the logic around reading/writing the authentication token file.

It is primarily intended to clean up the code in preparation for XDG standard directory support
Fixed: 8fc7c7a3bafeff28e1f67523ba256ebf8f3db74d (`lib` already added to load path. created `lib/gist` so requires look like `gist/auth_token_file`)