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.
No. This is just used in the method when uploading. No need to add it here, if you do not use `files` inside this method.