Rewrite how we use error codes

The primary use case here is a situation where we get an error code back from
the mediawiki API that tells us that the API isn't readable by anonymous users
(which is our main method of getting information), but it's also useful to
have a more definite list of error codes that we use. This should lead to
more helpful error messages in general.

Change-Id: Ie4c098f14270d1b9da95c54c0fb7441ddcb0e905