7.x allow viewers based on content type

Allows a viewer to be assigned to specific content types as well as to given mime type. This is needed for compound objects such as books, where the viewable data streams are in separate objects from the currently viewed object.