BaseRequest: re-arrange version check

To not de-facto require user_id and factors in all future versions
of the requests, it is necessary to check version before any other
checks.
Re-factor for readability and testability.