Add more API tests (and other API-related changes)

The individual commit messages detail what's in this commit pretty well. In short, I've added some tests for four more sets of API URLs, standardized the error messages produced by tests, improved the quality of error messages produced, and added support for `SomeField(default='foo')` and `SomeField(choices=(1, 2, 3))`.
This field should be named `organization` only. As this will be an organization instance so the id will not make clear this.

Also related our design fields will provide the meaning for the fields, and being a OneToOneField means that should be sent only the ID of the related entity and also add `_id` to the end. The same will happen for OneToManyField which will send a list of IDs and will append `_ids` to the field name.