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.
This `$set` is complicated. Move it to some `update` object before. So create `update` object and use newlines and indentation to structure the update.