Picture and video refactoring

Basically this is the refactoring needed in order to be able to switch to a reflection-based ViewBuilders as we previously talked, @anserran.