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.
`url` is the one being called from a template. The check's being done in `cachedFilename` so that the default behavior of `cachedFIlename` is to just return the original pdf's cached filename.