BibIndex: refactoring and author parent tokenizer

* Refactoring of BibIndex:
  implements inveniosoftware#1710

* Adds a generic parent tokenizer, useful for the dataset records:
  implements inveniosoftware#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 inveniosoftware#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`)
1: D200 One-line docstring should not occupy 3 lines
39: D203 Expected 1 blank line *before* class docstring, found 0
39: D204 Expected 1 blank line *after* class docstring, found 0
39: D400 First line should end with '.', not 'm'
39: D205 Blank line missing between one-line summary and description
49: D102 Docstring missing
50:24: E127 continuation line over-indented for visual indent
51:24: E127 continuation line over-indented for visual indent
52:24: E127 continuation line over-indented for visual indent
53:24: E127 continuation line over-indented for visual indent
65:76: E502 the backslash is redundant between brackets
66:37: E127 continuation line over-indented for visual indent
68: D401 First line should be imperative: 'Add', not 'Adds'
68: D200 One-line docstring should not occupy 3 lines
74: D401 First line should be imperative: 'Find', not 'Finds'
74: D205 Blank line missing between one-line summary and description
83: D401 First line should be imperative: 'Collect', not 'Collects'
83: D205 Blank line missing between one-line summary and description
93:20: E713 test for membership should be 'not in'
98: D401 First line should be imperative: 'Calculate', not 'Calculates'
98: D205 Blank line missing between one-line summary and description
106:16: E713 test for membership should be 'not in'
111: D401 First line should be imperative: 'Collect', not 'Collects'
111: D205 Blank line missing between one-line summary and description
121:24: E713 test for membership should be 'not in'
127: D401 First line should be imperative: 'Get', not 'Gets'
127: D400 First line should end with '.', not 'n'
127: D205 Blank line missing between one-line summary and description
166: D203 Expected 1 blank line *before* class docstring, found 0
166: D205 Blank line missing between one-line summary and description
166: D208 Docstring is over-indented
172: D102 Docstring missing
173:24: E127 continuation line over-indented for visual indent
174:24: E127 continuation line over-indented for visual indent
175:24: E127 continuation line over-indented for visual indent
176:24: E127 continuation line over-indented for visual indent
186:5: E303 too many blank lines (2)
186: D401 First line should be imperative: 'Collect', not 'Collects'
186: D205 Blank line missing between one-line summary and description
208:1: W391 blank line at end of file