Make Repository.read work correctly

Add `EntityReadMixin` to the `Repository` class. Override the `read` method,
allowing it to deal with the fact that issuing an HTTP GET to the API returns a
"product" hash containing an ID, but not a "product_id" integer as expected.

Test this change.
`field_type.entity` may be either a class or a string named after the class. (I guess I should make an inline comment stating this, eh?)