Tidy up Media models

Move asset specific stuff into the Asset classes

Also, display image with Audio if one available (and fall back to a default poster for Video if an image doesn't exist (just in case))
I don't think `toString()` is needed here `@audio.duration` should be fine