Make error views smarter; add rate limit error view.

Resolves #273

====

Todo:

- [x] Rebase off patch
- [x] When rate limited and not signed in, it should show a button recommending that you log in
- [x] When rate limited and signed in, it should tell you how long you have to wait
- [x] The styles between the error views should be shared

===

Some of those to-do's will be done in a subsequent update