BibIndex: new country tokenizer, country index, country KB

* Amends SPIRES to Invenio converter to use index cc->country
* Disables SPIRES sintax conversion cc->postalcode
* Adds BibIndexCountryTokenizer
* Adds regression tests for country tokenization on country index
* Adds countrynames-to-country.kb
* Adds country index and country field (in tabfill and with an upgrade script)
* Adds command line utility 'kbload', useful to load a new kb from file
* Automatically loads 'countrycode-to-country.kb' when installing demo site
* Adds configuration variable CFG_WEBSEARCH_INSTITUTION_COLLECTIONS
* Adds tags 110__u, 371__d, 371__g, 371__x
* Assumes that the country of the institution records does not change.
  If it changes, a manual full reindexing is required.

Signed-off-by: Federico Poli <federico.poli@cern.ch>
Tested-by: Alessio Deiana <alessio.deiana@cern.ch>
BibConvert: kbload fix

* Fixes newline problem

* Deletes try...except around imports

Signed-off-by: Federico Poli <federico.poli@cern.ch>
BibEditMulti: add email notification on submit

* Adds e-mail notification to users after submitting an update
  using the bibtask "email-logs-to" parameter.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
BibEdit: add email notification on submit

* Adds e-mail notification to users after submitting an update
  using the bibtask "email-logs-to" parameter.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
dbquery: accept mariadb 10.x in unit tests
BibIndex: new `datasource` field and `786__w` tag

* Adds field `datasource`, associated with the new tag `786__w`

* Adds upgrade script

* Adds bibfield definition of `datasource` in `atlantis.cfg`

Signed-off-by: Federico Poli <federico.poli@cern.ch>
BibIndex: pep8 fix

* Runs `autopep8` on bibindex files

* Updates copyright year

Signed-off-by: Federico Poli <federico.poli@cern.ch>
BibIndex: refactoring and author parent tokenizer

* Refactoring of BibIndex:
  implements https://github.com/inveniosoftware/invenio/issues/1710

* Adds a generic parent tokenizer, useful for the dataset records:
  implements https://github.com/inveniosoftware/invenio/issues/1885

* Adds 4 demo records for testing purpose

* Adds (and fixes) tests

More details:

* Refactoring of `task_run_core` in `bibindex_engine.py`: easier to
  follow, moves the decision of which records need to be reindexed to
  the tokenizers

* Fixes bug: the command `bibindex -w [index name] -m [date range]`
  previously was updating the `last_updated` field of the index

* Moves many of the index specific special cases from
  `bibindex_engine.py` to the tokenizers
  (e.g. `if index_name == "author": # add special tokens`)

* Moves some utility functions from `bibindex_engine.py` to
  `bibindex_engine_utils.py`

* Adds tokenizers `BibIndexAbstractParentTokenizer`,
  `BibIndexCanonicalAuthorTokenizer`,
  `BibIndexExactParentAuthorTokenizer`,
  `BibIndexParentAuthorTokenizer`,
  `BibIndexParentCanonicalAuthorTokenizer`

* Adds indexes `simpleauthor`, `canonicalauthor`, `parentauthor`,
  `parentcanonicalauthor`, `exactsimpleauthor`, `exactparentauthor`

* Adds fields `simpleauthor`, `exactsimpleauthor`

* Adds upgrade script for the database changes
  (uses function upgrade_atlantis)

* Transforms `author` and `exactauthor` indexes from regular to
  virtual index

* Adds file `bibindex_engine_tokenizer_regression_tests.py`

* Adds tests for tokenizers, for bibindex CLI, for bibindex utils

* Closes https://github.com/inveniosoftware/invenio/issues/1662
  (BibIndex: --reindex should not zero last_updated)

* Edits the commands run by `--load-demo-records` in order to
  reindex the bibauthorid-dependant indexes after the `bibauthorid`
  task (for example `canonicalauthor` and `parentcanonicalauthor`)

Signed-off-by: Federico Poli <federico.poli@cern.ch>