BibAuthorID: interface and backend upgrade

Short story:

* New Author Profile Pages, featuring
  responsive interface layouts, major refactoring
  and technology update.

* Rabbit upgrade:
  - Smart caching
  - Major optimizations
  - Test suite
  - New names comparison scheme for
    better matching

* Tortoise upgrade:
  - Better preclustering algorithm
  - Improvements in bibsched usage
  - Merging algorithm improvements

* Search engine:
  - Improved indexing
  - Improved name matching
  - Fixes and optimizations
    in both search engine and
    fallback search

Slightly longer story:

* Fixed broken links for claiming multiple papers.
* Improved the context of the email sent when an rt ticket is created.
* The deamon which precomputes caches is no longer taking account empty authors.
* Fixed menu bar to work even when an author does not have a canonical name.
* Fixed backend name utilities: splitting and capitalization.
* Fixed internal publication list on author page.
* Fixed merge profiles link handling.
* Fixed person search engine issues.
* Fixed profiles merging algorithm.
* Introduces a new API add_cname_to_hepname_record()
  to automatically schedule a BibUpload bibtask to
  append a new person ID to a given record.
* Moves retry_mkstemp() from bibdocfile to shellutils
  so that other modules can use it.
* jinja2 templates.
* Author search engine fixes and optimizations.
* Improvements in job scheduler.
* Indexer optimization, now invenio search engine can
  index canonical names efficiently.
* Session is now correctly initialized before use.
* Fixes in the WAPAFF format, now affiliations are computed
  correctly, both repeatable and omonymns.
* Rabbit: pluggable support for arbitrary identifiers
  (only ORCID and INSPIRE-ID implemented so far).
* author/%s redirects to author/profile/%s in the standard case.
* Better handling of author pages when bibauthorid is disabled
  (restores old behaviour, disables menus).
* Unified bibauthorid_enabled flag make it easier to switch
  bibauthorid on and off.
* Regression tests for profile pages.
* Improvements in logging facility.
* Rabbit now use a pluggable function to transform strings
  before doing an exact string search.
* BibAuthorID now displays the strings directly from records
  without applying any beautyfication function.
* Fixed /author/profile/ name resolution bug.
* Fixed import of publications from orcid.
* Smart marc caching: now bunches of records can be cached on demand.
* Profile content loading:
  new implementation dynamically reads box sources and doesn't depend on
  a hardcoded list.
* Improved DOM Element selection efficiency.
* Finished implementation of autoclaiming box functionalities.
* Ported interface do BootStrap3.
  Porting still in progress regarding claiming interface.
* Introduced logutils, now it's possible to log to file
  in a process-safe way and change verbosity at runtime.
* Fixed encoding in name variants dictionaries.
* Fixed local vs global imports.
* Better recompute button on APPP page.
* Upgrade scripts.
* Rabbit names matching functions.
* Provides fix for correct autoclaim display for status.
* Minor unit test corrections.
* Expanded HepNames data model integration.
* Fix for orcid_utils.
* Small changes in upgrade script.
* New help center (more  responsive, new content and now in jinja templates).
* External ids box is back in manage profile.
* Fix for manage publications modal box.
* Markup and HepNames transformation functions, institution history, table macro and selection quick.
* Added merge profiles confirmation box.
* More small fixes (feedback) on the interface.
* Javascript linting to avoid errors.
* Improved HepNames selection and confirmation.
* Fix for HepNames selection on Manage Profile.
* Fix for memoized and optimization in synonymous check.
* Refactored bibauthorid_daemon to work with schedule_workers.
* Better error handling for bai_daemon.
* Memoization of surname_comparison, create_matchable_name and other.
* Personal details box displays all identifiers.
* Now using fastest Levenshtein for name utils.
* Corrected and expanded implementation of schedule_workes to have efficient multiprocessing.
* Multprocessing-safe logger for the whole module.
* Improved TORTOISE preclustering algorithm.
* Improved fair scheduling multiprocessing daemon.
* Merging algorithm test suite.

Co-authored-by: Minn Soe <minn.soe@cern.ch>
Co-authored-by: Artem Tsikiridis <artem.tsikiridis@cern.ch>
Co-authored-by: Samuele Kaplun <samuele.kaplun@cern.ch>
Co-authored-by: Alessio Deiana <alessio.deiana@cern.ch>

Signed-off-by: Samuele Carli <samuele.carli@cern.ch>
BibAuthorID: Sets whitelisted identifiers and URL mapping.

* Displays only whitelisted identifiers coming from HepNames records.

Signed-off-by: Minn Soe <minn.soe@cern.ch>
BibAuthorID: Removed PHD highlighting from institution row in Personal Details.

* PHD affiliation is not highlighted anymore in the affiliation history
  table displayed on profile pages with data taken from HepNames records.

Signed-off-by: Minn Soe <minn.soe@cern.ch>
BibAuthorID: Cleaned author pages DOM ready handle.

* The document ready handler has been cleaned up to respect hoisting
  of function and variable declarations.

Signed-off-by: Minn Soe <minn.soe@cern.ch>
BibAuthorID: Unscoped Bootstrap 3 CSS for forms.

* Bootstrap CSS with INSPIRE modifications now require unscoped rules
  for form styles. All other styles still remain scoped under .bsw

Signed-off-by: Minn Soe <minn.soe@cern.ch>
BibAuthorID: New 'Contact Us' form for author pages.

* Restores and improves the contact form for author related queries
  from users.

Signed-off-by: Minn Soe <minn.soe@cern.ch>