changing PROVIDER global variable to be class variable instead

The PROVIDER variable is being used as a class variable, however it's defined as a global variable.
Global variables are dangerous for a multitude of reasons.
Fixing access_token handling in gmail account imap backend. Cleaning up code

Tokens were previously held in a global variable __volatile_tokens__, which was not functional since the functions that accessed it did not declare the global variable up front. I fixed this by removing __volatile_tokens__ completely and replacing it with 2 instance variables _access_token and _token_expiry. I consolidated the functions that managed the accoun tokens into a single function call and wrote tests verifying that it works (tests/backends/*)