libdocument: cleanup and improvements related to markup annotations
Most remarkably, making the Markup annots a class (which it should be!!), and making stamp and free-text subclasses too, as per the spec.
@lbaudin this amends some changes I asked you to do previously (don't make stamp a markup subclass). Sorry I was wrong, do you think you can have a look at the last commit?