Pdfjs Annotations - Saving

- Annotations for pdf's can now be drawn on, edited and saved.
- Fixed issues with PDF rendering.


Originally that is how I wanted it to work. But the current implementation doesn't actually make sense to me. Whenever a annotation is added for images first `add_annotation_text` is called to add the text, then `add_to_annotation_grid` is called to set its position. To me this doesn't make sense. When adding an annotation it should be completely set up at the time that it is added (including location). I'm not sure what the reasoning for doing it this way was. I find it creates more fragile code because you need to be certain that every time you go to add an annotation text, you also remember to set its location.