Endpoints can be of 'documents' or 'objects' type.

Begin work on #121. More to come.
PATCH not allowed on 'objects' endpoints.

WIP on #121.
schema not mandatory on object endpoints.

WIP #121.
multipart/form-data content-type support.
Support for new 'file' data type, validation included.
Revert "schema not mandatory on object endpoints."

This reverts commit 0279ccbb9e1b5cd35de8405d5bd53ab7cba95cc6.
Revert "PATCH not allowed on 'objects' endpoints."

This reverts commit 35c45d2d78415a33924e0c755d6d0c49c879169d.
Revert "Endpoints can be of 'documents' or 'objects' type."

This reverts commit 9cc52222c5a7787b39ba2b7d817580595beff5c4.
Use 'media' as data-type instead of 'file'.
MediaStorage base class.

Initial API definition.
GridFSMediaStorage class.

Initial implementation.
Media storage class as optional application argument.

Defaults to eve.io.mongo.GridFSMediaStorage.
Update MediaStorage 'put' method specification.
Only return id when storing in GridFSMediaStorage.
Merge branch 'develop' into media

Conflicts:
	CHANGES
Fix multipart/form-data PUT test.
Stronger validation for GridFSMediaStorage class.
Documentation for exclusive projections.
'media' fields helper for resource settings.
Image and file upload support. Closes #121

Media files (images, pdf, etc.) can be uploaded as ``media`` document
fields. When a document is requested, eventual media files will be
returned as Base64 strings. Upload is done via ``POST``, ``PUT`` and
``PATCH`` using the ``multipart/data-form`` content-type.

For optmized performance, by default files are stored in GridFS, however
custom ``MediaStorage`` classes can be provided to support alternative
storage systems (a FileSystemMediaStorage class is planned).

Clients and API maintainers can exploit the projections feature to
include/exclude media fields from requests. For example, a request like
``/url/<id>?projection={"image": 0}`` will return the document without
the image field. Also, while setting a resource ``datasource`` it is
possible to explicitly exclude media fields from standard responses
(clients will need to explicitly add them to the payload with
``?projection={"image": 1}``).

Documentation coming soon.