Fix message.
Opaque-keys: fix pep8 violations
Opaque-keys: fix pylint violations
StaffFactories accept `course_key`s, not `course`s. Make that clear in the interface.
Fixed some TODOs, removed irrelevant ones
Add Oriya language
Add Gujarati language
Update translations (autogenerated message)
Merge pull request #3884 from edx/sarina/052714-translations

Update translations
Merge pull request #3874 from edx/sarina/opaque-keys-cleanup

Sarina/opaque keys cleanup
Merge pull request #3888 from edx/dhm/bug_get_children

Redirect most studio access through draft modulestore
Allow courses to set Matlab API key globally, in advanced settings.
Updated payload for new matlab endpoint.
Don't hardcode https protocol in enrollment emails.

Use http or https, depending on the value of `request.is_secure()`.
That is how links in most other emails are handled.
i18n: Make .underscore files translatable

Currently the strings in .underscore files are not extracted
by i18n/extract.py, which causes most strings in such files
are not translatable. As there is no existing tools which can
extract messages from these files, a simple shell command is
written to do such job.
Ensure no old gems are left behind between test runs.
No longer chunk queries when sending out bulk email (LMS-2718)

refactor _generate_items_for_subtask not to chunk queries

use django's iterator methor for querysets

remove bulk email query settings

use read_replica if available, since this is read-only

update changelog
Make reverse matching robust to errored courses

Conflicts:
	cms/djangoapps/contentstore/tests/test_course_listing.py
Don't access course.id on ErrorDescriptors when listing courses from mongo
get_courses doesn't return ErrorDescriptor