Add PDF Normalization

#566. Still need to fix some coffeescript syntax, use random.Id, add a database migration, change `files` to `cached`, and update comments.
Yes it is, but because of the way I'm currently storing each file, there isn't really a great way to get it. I'd have to search the file list for the specified fileId to get the media type. I guess I could just do that for now though.

     files: [
          fileId: Random.id()
          createdAt: createdAt
          updatedAt: createdAt
          sha256: sha256
          mediaType: 'pdf'
          type: 'original'
        ]