Send appropriate status codes when using show_error

CodeIgniter by default sends a 500 HTTP status code when using the
show_error function. Since we are using this to inform the user about
non fatal errors in some cases, this changeset changes or adds a 200,
403, or 404 status code when appropriate.

Code 200 is being used for not authenticated since 401 requires a HTTP
Authentication headers to be sent and 403 is authenticated but not
authorised. These pages should be added to robots.txt.