Merge feature SOL-20

This is a pull request to merge the SOL-20 feature (https://openedx.atlassian.net/browse/SOL-20).
See earlier comment about using ```os.path.splitext```. However, as I mentioned the last time I reviewed this, I don't think we should be doing analysis of the display name to work out its type. This is information that the server should be providing.