Major overhaul, switched to Guzzle 4, improved token management, added token persistence callbacks, etc