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.
Never ever pass a long string to exec! Then it has to be parsed with `bash` and then you can have big security issues.

Simply pass arguments as `opts`.

BTW, in our style we also use CoffeeScript string interpolation instead of string concatenation.