glib: Extend FreeText annotation support

This patch allows adding new freetext annotations, their intent,
quadding and callout lines.
core: Fix issue when adding annot without contents

Having no content in an annotation results in a crash when generating
it's appearance, since the contents pointer is dereferenced.
For consistency, the same has been done in Annot::initialize.
core: Expose AnnotFreeText::parseAppearanceString

The frontends need to parse the DA string of the free text annotations
to get the font size and color of the text. This function is made public
to avoid the repeated effort.
glib-demo: Extend demo for FreeText annotations

Adds font color, font size, intent properties of freetext annotations.
Also allows adding new free text annotations.