Update Permission entity

Update Permission entity as it is a read only entity, also update its
fields.
Add search functionality to the Permission entity.
Add tests for all touched areas.
Merge pull request #1471 from elyezer/permission-entity

Update Permission entity
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.
Merge pull request #1472 from Ichimonji10/api-media

Improve the API layer for the Media class
"Added test for repository - upload content"

"Added test for repository - upload content"

"Added test for repository - upload content"
Merge pull request #1474 from tkolhar/test_cli

"Added test for repository - upload content"
Replacing instances of orm.type.get_value() with fauxfactory methods. Also, resolving merge conflicts.
Changed string formatting, and minor fixes.
Minor change to import and usage in entities.py.
Merge pull request #1473 from JacobCallahan/temp

Replacing instances of orm.type.get_value() with fauxfactory methods.
Fix for the UI boundary tests.

Boundary tests need a fixed length to test whether the entity
creation beyond 255 chars fails. It is here where we do require
an option to specify a fixed length.

so now unless we specify a length for the string it will continue
to use a random length for non-boundary tests.

Added sphinx directives