Refactored Media to make it NMedia and replaced templatehaskell hackery
with the Data.Lens module and moving any convenience functions directly
into the infer module, effectively hiding them completely from outside
modules.