docs: initial release of CONTRIBUTING guide

* Adds `CONTRIBUTING.rst` guide, taken from our old Trac wiki site,
  reusing the old content, updating it only slightly so far.
  (closes #2163)

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
Merge branch 'maint-1.0' into maint-1.1

* maint-1.0:
  docs: initial release of CONTRIBUTING guide

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
Merge branch 'maint-1.1'

* maint-1.1:
  docs: initial release of CONTRIBUTING guide

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
WebSearch: richer `/record` and `/search` API docs

* Enriches documentation about `/search` API with new sections
  describing XML API and JSON API, with notes and usage examples.
  (addresses #2303)

* Adds new "Record API" documentation describing `/record/` API, with
  notes and usage examples.

Signed-off-by: Tibor Simko <tibor.simko@cern.ch>
DocExtract: preload kbs on wsgi load

Co-authored-by: Alessio Deiana <alessio.deiana@cern.ch>
Signed-off-by: Alessio Deiana <alessio.deiana@cern.ch>
PdfChecker: skip records without unique ids in 037 tags
WebSearch: add more info on verbose output
BibIndex: special journal page handling

* Improves the standard Journal tokenizer to keep page-end
  when indexing, as well as adding new journal,volume pairs.

* Amends the search_engine to specially handle searches in
  the journal field with page ranges to make use of the new
  tokenized strings. This fixes issues seen in BibRank and
  other search engine clients that passes a valid full page
  range and obtains no result (because it was not indexed!).

Co-authored-by: Alessio Deiana <alessio.deiana@cern.ch>
WebSearch: special journal search fallback

* For certain journal search queries with INSPIRE style page
  ranges the user is now presented with an alternative
  result without the page-end part of the query, should the
  original query return no results.

Co-authored-by: Alessio Deiana <alessio.deiana@cern.ch>
BibCheck: improvements in DOI checks

* Sends only start page to crossref, not the range
BibAuthorID: hotfix in author-hepnames connection

* Session is now correctly initialized before use.
BibAuthorID: fix in WAPAFF format

* Now handles correctly repeatable affiliations
BibCheck: add $$9 bibcheck to dois added
BibAuthorID: javascript ticket system optimization

* Optimised ticketing system sync, significantly reduces server polling load.
datacher: minimum caching time

* Introduces a new parameter in the datacacher that defaults to 30s.
  This is the mininum time the data is cached. That means that calling
  recreate_cache_if_needed() does nothing if it was called less than 30s ago.
BibRank: details citations diff

* When bibrank -w citation fails because we lost too many citations,
  displays in the log for each record how many citations they lost.
BibIndex: bibauthorid performance improvements

* Re-implements get_author_canonical_ids_for_recid() to bypass
  complex BibAuthorID API usage and directly retrieve data
  from the DB for a gain of speed of ~800x.

Signed-off-by: Samuele Kaplun <samuele.kaplun@cern.ch>
Co-authored-by: Alessio Deiana <alessio.deiana@cern.ch>
Co-authored-by: Samuele Carli <samuele.carli@cern.ch>
BibEdit: holdingPen fix

*  When merging a record with a template, if the record is a hp record
   make all its subfields volatile.

Reviewed-by: Javier Martin Montull <javier.martin.montull@cern.ch>
BibAuthorId: Fixed bibref selection dropdown bug in claiming system.
BibCatalog: pass requestor on ticket submit