Add an endpoint for syncing a user's course status metadata

JIRA: MA-75

proposed path: users/{user}/course_status_info/{course_id}


Some things I am looking for feedback on:
1. Name of the endpoint. I've been calling it course_status_info but maybe metadata is a better word?
2.
  - Arguments. Name: last_visited_module_id.
  - Format: Right now I have it as form encoded on the setter. Should the body be JSON?

Also adds an "id" field to the path returned as part of the video_outline.

@gwprice @nasthagiri 
Note that this does not include combining the getter here with the video_outline endpoint into a new endpoint as we discussed. I figured we needed to have the symmetric getter for the setter no matter what and that would unblock Clarice. I'm happy to combine those into a new endpoint if we still think it's a good idea.

Right, we don't have a good place to put things like this. Since `save_child_position` is defined here too, if we move this fn then we should move that fn. I agree neither are 'views' (nor handlers). `save_child_position` arguably should go in `xmodule.seq_module.SequenceFields` but that violates `xxxFields` being only field definitions, but it's purpose is really to force the field computation. It could go in `xmodule.seq_module.SequenceModule`; however, `..from_leaf` shouldn't go there b/c it's provoking those computations from children. I suppose it could be a top-level fn in that module or a static method in the same place as the other fn?

What if the leaf is not a child of an xblock w/ the `position` field?