More alignment of data structures to DIDL

The first step in implementing my comments on #231, and on the way to a fix for #226 and #227

It begins to align the data structures more closely to the DIDL spec. This gives us more future flexibility, removes some subtle bugs, and should generally make life a little easier :grinning: 

Some ML classes have been renamed, but you should not notice any real difference. Some unnecessary classes have been removed. The MS data structures moved to their own module, and will require further work (but they should work just as well as they did before).

Event code still not fixed, but please test and report any problems.  In particular check adding to queue, and adding URI's please
It seems to be not quite consistent whether the item_class is described in the class docstring. I don't have strong opinions on this, be maybe sort of leaning towards putting it in there. The same is also the case for whether we document the _translation on the classes that don't overwrite it.

In any case, we should just decide on one or the other and make it consistent.