Make create_item return the xblock as obtained from get_item.

Needed so that all editing info fields will be populated. We had made this change on the bulk publishing branch (before the code was moved from mixed modulestore into the individual modulestores).

Note that this is also consistent with the implementation in split.py. @nasthagiri and @cpennington please review.

As to the test_mixed_modulestore change, here is an e-mail from @nasthagiri describing the issue:
_______
The problem is that the implementation of .replace is different between SlashSeparatedCourseKey and CourseLocator.  If you look at the _key member in the 2 locations, you'll see the underlying key object that is used.

The old implementation in SlashSeparatedCourseKey had overridden all attributes, including "branch" when .replace was called.  However, the new implementation in CourseLocator keeps the attribute values, including "branch".

So it seems one would NOT run into this issue if they happened to have used a SlashSeparatedCourseKey.

The location variable in create_item in base.py happens to be a SlashSeparatedCourseKey.  But when you changed it to return the return value of get_item, it happened to load the xblock, which creates a CourseLocator.

In the end, I believe the test in test_mixed_modulestore needs to be updated to be branch_agnostic.

@cpennington , here's another case of a hard-to-debug issue having to do with comparison of Key objects - one having a Branch specified and the other not.  It just happened to work before since SlashSeparatedCourseKeys implemented .replace differently (only capturing the org/course/run from the previous object).
No, it does not. In particular, the edited_by, edited_on information is not filled out.

@benmcmorran made this change (in the previous location) a couple of weeks ago and talked to @dmitchell about it. As far as I know, a better solution was not proposed.