Tracking logs

`feedback.shown` is not implemented, since it is already implied by a `problem.attempted` event. There is no other way to trigger a feedback.

It would be nice to add an `item_id` to the `feedback.closed` event. It might be a good idea, and relatively easy, but that would include giving IDs for each feedback, meaning some extra work and code.


@cpennington I have thought about it, especially, now that I essentially have the code duplicated in all 4 xblocks.

If you feel this belongs to XBlock core, I think the `publish_event` function is general enough to take it as it is. I can do it, unless you already have a clear idea on where do you want the code inserted (and want to do it yourself).