Fix some isues in the API docs.

The file attachment API docs referred to screenshots and not file
attachments in many places. It also had some outdated information about
what could be updated.

The new validation resources weren't marked as being added in 2.0.
Store the docs database as fixtures instead of an sqlite database.

The docs database was painful to merge and update, and sometimes stray
items (from operations that deal with in-database caches) would get
committed. It also outright failed when there were evolutions that
needed to be applied, always.

Now, building any docs target for the manual will rebuild the docs db
from a fixture, if the fixture has changed or if the database is
missing. When adding new items to the database, a modified docs.db can
be dumped using ./scripts/dumpdata.sh.

This should help going forward with some annoyances with our docs
builds.
Add a new base TestCase class with helpful factory methods.

This introduces a new reviewboard.testing app with a new base TestCase
class that's intended to be used in other tests. This class provides a
handful of methods for creating various models we use in tests, along
with default data (which can be overridden by the callers).

This will allow us to reduce our dependence on most fixtures, which will
speed up tests, and make tests more readable.
Move away from most fixtures on all non-webapi apps.

This removes the usage of the test_reviewrequests and most of the
test_scmtools fixtures from the non-webapi unit tests. Instead, these
test suites now use the new TestCase class's utility methods for
creating test objects.

With the test suite as it originally was, on my machine, it took roughly
159 seconds to complete. With this change, it's down to ~143. After my
upcoming change, which also removes data from the test_scmtools fixture,
the time drops to ~88.
Move away from most fixtures for the webapi tests.

This removes the usage of the test_reviewrequests and most of the
test_scmtools fixtures from the webapi unit tests. Instead, these test
suites now use the new TestCase class's utility methods for creating
test objects.

It also removes a lot of the older utility methods for creating dummy
objects that went through the API. Each of these requests contributed
50-100ms of time, which added up.

With the test suite as it originally was, on my machine, it took roughly
159 seconds to complete. After this and the previous changes, it drops
to around ~88.

Unit tests are much clearer now. Instead of having to know how fixtures
are set up, or tracing through a bunch of API requests, you can just
read the unit tests and see what they're doing.

In total, 1,834 lines of code have been deleted in these changes.
Fix error output when setting a FileAttachment's thumbnail.

The error output was returning a string, which didn't match all other
cases of INVALID_FORM_DATA errors. It should be returning an array.
Fix up several fields in the admin UI for models.

While adding some entries to the docs database for the diff file
attachments, I realized we had some missing fields in the admin UI and
some fields that should have been limited to raw IDs. The file
attachment fields on ReviewRequest weren't exposed at all.

This change adds the missing fields and marks up a few to require raw
IDs.

Also, some fields weren't allowed to be blank, even though they should
have been.