Separated contribution models into different files

For easier readability and maintainability
Structure is now:
/models
  contributions.py
    Observation
    Comment
  locations.py
    Location
  media.py
    MediaFile
    ImageFile
    (VideoFile)
    (DocumentFile)
ImageFile models and migrations
MediaFileManger implementation
Media file serializer
File list and upload API endpoint
Generic MediaFile create manager

The method determines the file type using the file name extension and
creates the file using the corresponding class. Currently only images
(png, jpg, gif) are supported.
Made media root path relative to site path
Added tests for AllContributionsMediaAPIView
All contributions images endpoint
My Contributions and Grouping Contributions file endpoints
Restricts contribution of files to contributors only
Merge branch 'file-uplods' into staging