Support for RefreshToken, RenewIdToken and token exp validation for Android and iOS

@mgonto mind reviewing? still need to update the implementation to get the dev id/name in Android.

@tvand7093: this is the updated PR.
:) on Elvis.

`null` is not the same as `""` (`string.Empty). `??`does not guard against that.