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.
Sure. But I'm just wondering, is there a reason why they aren't at the top level in [version.coffee](https://github.com/peerlibrary/peerlibrary/blob/development/server/lib/version.coffee#L14)?