Add support for text search across lines

Implemented in poppler MR:
https://gitlab.freedesktop.org/poppler/poppler/merge_requests/267

as the new poppler result data type is PopplerFindRectangle which
incorporates more fields than just coordinates, we create a
corresponding type in Evince, called EvFindRectangle, and use it
all across Evince including the pdf backend (ev-poppler.cc) and
djvu backend (djvu-document.c) which are the only backends that
implement text search interface.

This new feature has the following aspects:

 - Ignores hyphen character while matching when 1) it's the
   last character of the line and 2) its corresponding matching
   character in the search term is not an hyphen too.

 - Any whitespace characters in the search term will be allowed
   to match on the logic position where the lines split (i.e. what
   would normally be the newline character in a text file, but
   PDF text does not include newline characters between lines).

 - It won't match on text spanning more than two lines, i.e. it
   only matches text spanning from end of one line to start of
   next line.

Part of issue #333
7 jobs for 333-handle-spaces-and-hyphenation-when-search-pdf in 4 minutes and 10 seconds (queued for 2 seconds)
latest
Status Job ID Name Coverage
  Build
failed #508849
flatpak

00:04:09

manual #508848
allowed to fail manual
gtk-doc
failed #508845
master

00:02:30

manual #508846
allowed to fail manual
meson
manual #508847
allowed to fail manual
meson-gtk-doc
 
  Deploy
skipped #508850
deploy
skipped #508851
allowed to fail manual
stop_deploy
 
Name Stage Failure
failed
flatpak Build
../libdocument/ev-annotation.c:706: Warning: EvinceDocument: multiple comment blocks documenting 'ev_annotation_set_area:' identifier (already seen at ev-annotation.c:687).
../libdocument/ev-document.c:777: Warning: EvinceDocument: ev_document_get_page_size: unknown parameter 'page_index' in documentation comment, should be 'page'
../libdocument/ev-backends-manager.h:44: Warning: EvinceDocument: ev_backends_manager_get_document_type_info: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
../libdocument/ev-backends-manager.h:46: Warning: EvinceDocument: ev_backends_manager_get_all_types_info: return value: Missing (element-type) annotation
../libdocument/ev-document.c:678: Warning: EvinceDocument: ev_document_synctex_forward_search: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
../libdocument/ev-document.h:141: Warning: EvinceDocument: ev_document_get_doc_mutex: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
../libdocument/ev-document.h:147: Warning: EvinceDocument: ev_document_get_fc_mutex: return value: Invalid non-constant return of bare structure or union; register as boxed type or (skip)
ninja: build stopped: subcommand failed.
ERROR: Job failed: exit code 1
failed
master Build
Makefile:753: recipe for target 'all-recursive' failed
make[1]: Leaving directory '/builds/GNOME/evince'
make[1]: *** [all-recursive] Error 1
Makefile:618: recipe for target 'all' failed
make: *** [all] Error 2
Uploading artifacts...
config.log: found 1 matching files
Uploading artifacts to coordinator... ok
id=508845 responseStatus=201 Created token=6w_hBWfe
ERROR: Job failed: exit code 1