Added basic media class. Added viewable interface.
Removed Viewable interface from media. Added MediaType enum. Media is no longer abstract, and instead specifies a media type.
Merge branch 'media'