web: External service mode cleanup
Created by: ryanslade
The logic used to check whether user external services are allowed was spread over many places. It also didn't consistently check both user tags and site settings.
This change centralises all the logic in one place.