libview: Draw selection highlight from region

Allows a fallback for backends which can implement get_selection_region
but not render_selection.  Changes ev-pixbuf-cache so a redraw is only
done when the scale changes.

https://bugzilla.gnome.org/show_bug.cgi?id=669022
libview: Split ev_pixbuf_cache_get_selection_surface into two functions

ev_pixbuf_cache_get_selection_surface returns the selection surface, and
new function ev_pixbuf_cache_get_selection_region returns the selection
region.

https://bugzilla.gnome.org/show_bug.cgi?id=669022
libview: Use EvPixbufCache to find selection region

Using view->selection_info.selections is inaccurate if the zoom
changes, causing drag and drop of selected text to fail.  This changes
location_in_selected_text function to use the more accurate
ev_pixbuf_cache_get_selection_region to find the selection region.

https://bugzilla.gnome.org/show_bug.cgi?id=702406
libview: Position the caret cursor by clicking

https://bugzilla.gnome.org/show_bug.cgi?id=702071
history: Fix memory corruption

Simplify the design by keeping the whole history in just one list. This removes the code
that was causing the memory corruption.

https://bugzilla.gnome.org/show_bug.cgi?id=697397
history: Make history more web browser-like

When adding new history from non-history navigation, throw away the forward
history.
history: Limit history depth
release: 3.9.3