Improve the API layer for the Media class

Make the following code work correctly:

    Media(operatingsystem=[1, 2, 3]).create()

Formerly, operating system IDs would be completely ignored.

Make `Media.read` capable of correctly unpacking operating system IDs.

Make `EntityReadMixin.read` capable of correctly dealing with
`SomeEntity.Meta.api_names`. In other words, make `EntityReadMixin.read` capable
of dealing with mappings between local attribute names and remote attribute
names.

Test these changes.
These "u" characters in the docstring are intended to reinforce the fact that the server deals in unicode.