X509AuthMiddleware is an old piece of code designed to authenticate
users using X.509 certificates. It was living inreviewboard.admin.middleware, rather thanreviewboard.accounts.middleware, had some unnecessary checks, and
determined whether to process based on logic that the account backend
split is going to break. That last reason is why this change is being
made.

This change fixes all that up, simplifying the code, moving it underreviewboard.accounts, and determining the auth backend through safer
means. It also adds unit tests to ensure that authentication only
happens under the proper circumstances.