Enforce type of the XBlocks Fields when set

This updates the XBlock dependency to edX/XBlock@***
and add the newly introduced enforce_type methods
Add xmodule fields enforce_type tests
Make enforce_type an optional flag, to avoid conflicts
enforce-type: set the edx/XBlock#200 merge hash
Add my name to AUTHORS
Replace create_xmodule with create_xblock
Refactor all callers (often replacing with more appropriate fn)

Also, added for_branch_setting method to old mongo and removed some
branch verification tests

Conflicts:
	common/lib/xmodule/xmodule/modulestore/mongo/draft.py
	common/lib/xmodule/xmodule/modulestore/split_mongo/split_draft.py
	common/lib/xmodule/xmodule/modulestore/xml_importer.py
Refactor xml_importer.py for easier reading.
Remove post-publish step.
Add make_course_key to modulestores, so that external clients don't need to assume a CourseKey subtype.

Conflicts:
	common/lib/xmodule/xmodule/modulestore/xml_importer.py
Trying to get split to work
Import depth first to help w/ publishing
fixup - re-enable Asset checking.
Move about overview creation to common superclass
Provide workarounds for skip_draft where other code doesn't want its behavior
Support xml blocks w/ multiple parents
Use new check counter & bump count
Support import of ErrorDescriptors.
Use continue version for create course side effects
Disable fetching by version guid for now
More branch override precedence refinement
ORA2 events