Add hook for intercepting before the token auto refresh

This is to add support for running concurrently on different machines. Before the refresh, they can read from shared storage and make sure they all have the most recent refresh token, before doing the refresh.
Can you change it back to IAuthData? If there's a need to get rid of the interface that should belong to another patch.