Add support for auth-backend UserQueryErrors.

Extensions with custom AuthBackends can now raise a UserQueryError, with a
detailed message, from within a query_users() method. It will be caught and
turned into a web API USER_QUERRY_ERROR.

Testing Done:
All unit tests pass except for some VCS-specific ones, which are skipped.

Manually verified that a UserQueryError with a custom message passed from an
extension gets included in an AJAX error response.

Reviewed at https://reviews.reviewboard.org/r/5771/
Merge branch 'release-2.0.x'