ensure top/bottom and left/right relations for /FitR boxes

adresses the usability problem described in
https://bugzilla.gnome.org/show_bug.cgi?id=695524
center target box for /FitR jumping

https://bugzilla.gnome.org/show_bug.cgi?id=695524
libview: Enable GDK_SMOOTH_SCROLL events for view

This enables the smooth/kinetic scrolling support found in GTK+ 3.3.18
with the document view, and handles them for the Ctrl+scroll,
Shift+scroll, and non-continuous best-fit mode scrolling cases.

https://bugzilla.gnome.org/show_bug.cgi?id=674098
libview: Allow zooming to the limits of the scale

If the current zoom level was within one zoom factor of the limit, it
was not possible to scroll towards the limit. This made smooth scrolling
near the limit awkward, as unless the scroll event had a large delta it
was impossible to reach the zoom limit. Non-smooth scrolling was also
affected, but it was just much more difficult to trigger.

Fix this by allowing zooming while the current zoom level is within one
zoom factor of the limit. Add a new ev_view_can_zoom() function to make
zooming by a factor (as with smooth scrolling) more convenient.

https://bugzilla.gnome.org/show_bug.cgi?id=674098
If the file can't be opened, show its uri
libdocument: Add EvAnnotationTextMarkup GObject.

Add EvAnnotationTextMarkup GObject. This object is a wrapper
for PopplerAnnotTextMarkup GObject, which manages Highlight, Underline,
Squiggly and Strike Out PDF annotations.
pdf: Add support for Text Markup Annotations.

Add basic handling for Highlight, Underline, Squiggly and Strike Out Annotations.
This allows to see/edit the contents and basic properties of the Annotations.
libdocument: Replace PROP_ATTACHMENT_ATTACHMENT for PROP_MARKUP_POUP_IS_OPEN.

When checking whether a prop id belongs to the annot_markup interface, the checks
are done with (prop_id < PROP_ATTACHMENT_ATTACHMENT). We change these checks
to (prop_id <= PROP_MARKUP_POPUP_IS_OPEN) which are completely equivalent
as PROP_ATTACHMENT_ATTACHMENT = PROP_MARKUP_POPUP_IS_OPEN + 1, but
they provide better readibility of the code.
libview: Make ev_view_reload_page public

This is needed so evince can redraw a page after an annotation in that page is removed.
libdocument: Add remove_annotation to DocumentAnnotations.
shell: Add RemoveAnnot action to the view popup.
pdf: Implement remove_annotation virtual func.
Add INK and SQUARE
Add ANNOT_FREE_TEXT
Made annotations sidebars one-liner