Expand EntityReadMixin

Make `EntityReadMixin` provide the following methods to inheriting classes:

* `read`
* `read_json`

The `read` method acts just as before. The new `read_json` method does just what
you'd expect: read information from the server and return decoded JSON.

Add tests for the new `read_json` method.
Merge pull request #1268 from Ichimonji10/larger-read-mixin

Expand EntityReadMixin
Add EntityReadMixin to some entities

When asked for information about an entity, the API often returns data that is
inconsistently named, inconsistently structured, or incomplete. Thus, the
EntityReadMixin can only be added to a few entities. Do so, and add a test
verifying that the mixin works.