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
4: I102 copyright year is outdated, expected 2014 but got 2011
33:1: E302 expected 2 blank lines, found 1
33: D203 Expected 1 blank line *before* class docstring, found 0
33: D204 Expected 1 blank line *after* class docstring, found 0
33: D200 One-line docstring should not occupy 3 lines
40: D203 Expected 1 blank line *before* class docstring, found 0
88: D102 Docstring missing
89:13: E128 continuation line under-indented for visual indent
90:13: E128 continuation line under-indented for visual indent
91:13: E128 continuation line under-indented for visual indent
92:13: E128 continuation line under-indented for visual indent
93:13: E128 continuation line under-indented for visual indent
106: D400 First line should end with '.', not 'e'
106: D205 Blank line missing between one-line summary and description
124: D400 First line should end with '.', not 'g'
124: D205 Blank line missing between one-line summary and description
161: D401 First line should be imperative: 'Return', not 'Returns'
173: D401 First line should be imperative: 'Return', not 'Returns'
185: D401 First line should be imperative: 'Return', not 'Returns'
199: D401 First line should be imperative: 'Return', not 'Returns'
199: D400 First line should end with '.', not 'f'
199: D205 Blank line missing between one-line summary and description
213: D400 First line should end with '.', not 's'
213: D205 Blank line missing between one-line summary and description
232: D401 First line should be imperative: 'Return', not 'Returns'
246:17: E128 continuation line under-indented for visual indent
249: D401 First line should be imperative: 'Return', not 'Returns'
263: D401 First line should be imperative: 'Return', not 'Returns'
309:29: E126 continuation line over-indented for hanging indent
319:21: E128 continuation line under-indented for visual indent
343:29: F841 local variable 'e' is assigned to but never used
353: D401 First line should be imperative: 'A', not 'As'
353: D400 First line should end with '.', not 'k'
353: D205 Blank line missing between one-line summary and description
370:17: E128 continuation line under-indented for visual indent
372: D401 First line should be imperative: 'A', not 'As'
372: D400 First line should end with '.', not 'd'
372: D205 Blank line missing between one-line summary and description
386: D401 First line should be imperative: 'A', not 'As'
399: D401 First line should be imperative: 'A', not 'As'
415: D401 First line should be imperative: 'A', not 'As'
415: D400 First line should end with '.', not 'k'
415: D205 Blank line missing between one-line summary and description
427: D401 First line should be imperative: 'A', not 'As'
440: D401 First line should be imperative: 'A', not 'As'
450: D401 First line should be imperative: 'A', not 'As'
462: D401 First line should be imperative: 'A', not 'As'
462: D400 First line should end with '.', not 'y'
462: D205 Blank line missing between one-line summary and description
473: D401 First line should be imperative: 'A', not 'As'
486: D401 First line should be imperative: 'A', not 'As'
492:34: E502 the backslash is redundant between brackets
493:13: E128 continuation line under-indented for visual indent
509: D400 First line should end with '.', not 'n'
509: D205 Blank line missing between one-line summary and description
535:29: E128 continuation line under-indented for visual indent
537:25: E125 continuation line with same indent as next logical line
540:33: E128 continuation line under-indented for visual indent
541:33: E128 continuation line under-indented for visual indent
558:33: E128 continuation line under-indented for visual indent
559:33: E128 continuation line under-indented for visual indent
560:33: E128 continuation line under-indented for visual indent
561:33: E128 continuation line under-indented for visual indent
565:21: E128 continuation line under-indented for visual indent
566:21: E128 continuation line under-indented for visual indent
594:33: E128 continuation line under-indented for visual indent
595:33: E128 continuation line under-indented for visual indent
596:33: E128 continuation line under-indented for visual indent
604:33: E128 continuation line under-indented for visual indent
605:33: E128 continuation line under-indented for visual indent
606:33: E128 continuation line under-indented for visual indent
612:25: E128 continuation line under-indented for visual indent
617:29: E128 continuation line under-indented for visual indent
618:29: E128 continuation line under-indented for visual indent
619:29: E128 continuation line under-indented for visual indent
620:29: E128 continuation line under-indented for visual indent
624:25: E128 continuation line under-indented for visual indent
626:25: E128 continuation line under-indented for visual indent
627:25: E128 continuation line under-indented for visual indent
631:21: E128 continuation line under-indented for visual indent
632:21: E128 continuation line under-indented for visual indent
642:13: E128 continuation line under-indented for visual indent
643:13: E128 continuation line under-indented for visual indent
646: D401 First line should be imperative: 'Create', not 'Creates'
646: D400 First line should end with '.', not 'c'
646: D205 Blank line missing between one-line summary and description
713:25: E128 continuation line under-indented for visual indent
714:25: E128 continuation line under-indented for visual indent
719:25: E128 continuation line under-indented for visual indent
720:25: E128 continuation line under-indented for visual indent
734:29: E128 continuation line under-indented for visual indent
735:29: E128 continuation line under-indented for visual indent
748:21: E128 continuation line under-indented for visual indent
756: D401 First line should be imperative: 'Return', not 'Returns'
756: D400 First line should end with '.', not 'n'
756: D205 Blank line missing between one-line summary and description
802: D401 First line should be imperative: 'Return', not 'Returns'
818: D400 First line should end with '.', not 't'
818: D205 Blank line missing between one-line summary and description
868:17: E128 continuation line under-indented for visual indent
877:13: E128 continuation line under-indented for visual indent