Add make_course_key to modulestores, so that external clients don't need to assume a CourseKey subtype.
When creating a course during import, use that course key as the target course key.
Use a version_agnostic dest_course_id
Import Published content directly as Published, rather than a separate Publish call.

Conflicts:
	common/lib/xmodule/xmodule/modulestore/mixed.py
	common/lib/xmodule/xmodule/modulestore/xml_importer.py
Check both draft and published branches when asserting course equality
Use a consistent baseline course_key for checking item identifiers (to reduce differences due to different version numbers
Enforce that the block_id for courses in old-mongo is the same as the course run
Do comparison of item ids based just on the block_type and block_id
Always pass a block_type when constructing ScopeIds
Fix ErrorDescriptor scope ids
Clearer debugging message
Copy course fields explicitly during import (separately from the rest of the looping over modules
Only compare the published state for courses in modulestores of the same type
Assert course equality in bulk, so that all differences are displayed
During import, update an existing item, rather than always creating a new one
Update tests to create the course when importing
Cleanup DuplicateItemError formatting
Don't generate uuid block ids if not needed
Use unicode strings when generating assertion messages
Use .block_type when available, rather than hardcoding a type in tests