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`)
95: D400 First line should end with '.', not 'o'
106: D202 No blank lines allowed *after* function docstring, found 1
106: D400 First line should end with '.', not 'g'
106: D205 Blank line missing between one-line summary and description
117:27: E127 continuation line over-indented for visual indent
129:5: E303 too many blank lines (2)
208:23: E126 continuation line over-indented for hanging indent
247:70: E231 missing whitespace after ','
291:27: E127 continuation line over-indented for visual indent
304:5: E303 too many blank lines (3)
306:1: E302 expected 2 blank lines, found 1
306: D400 First line should end with '.', not 's'
306: D205 Blank line missing between one-line summary and description
314: D401 First line should be imperative: 'Return', not 'Returns'
314: D400 First line should end with '.', not ':'
343:20: E127 continuation line over-indented for visual indent
392:1: E302 expected 2 blank lines, found 1
392: D205 Blank line missing between one-line summary and description
401:21: E127 continuation line over-indented for visual indent
406:50: E502 the backslash is redundant between brackets
407:25: E127 continuation line over-indented for visual indent
407:66: E502 the backslash is redundant between brackets
408:25: E127 continuation line over-indented for visual indent
418:1: E302 expected 2 blank lines, found 1
418: D205 Blank line missing between one-line summary and description
427:21: E127 continuation line over-indented for visual indent
446:1: E302 expected 2 blank lines, found 1
446: D400 First line should end with '.', not '6'
446: D205 Blank line missing between one-line summary and description
456:14: E127 continuation line over-indented for visual indent
468:50: E127 continuation line over-indented for visual indent
469:50: E127 continuation line over-indented for visual indent
470:50: E127 continuation line over-indented for visual indent
478:1: E302 expected 2 blank lines, found 1
478: D400 First line should end with '.', not 'r'
478: D205 Blank line missing between one-line summary and description
488:14: E127 continuation line over-indented for visual indent
492:16: E126 continuation line over-indented for hanging indent
507:45: E128 continuation line under-indented for visual indent
508:45: E128 continuation line under-indented for visual indent
516:1: E302 expected 2 blank lines, found 1
516: D400 First line should end with '.', not 'd'
516: D205 Blank line missing between one-line summary and description
543:1: E302 expected 2 blank lines, found 1
543: D209 Put multi-line docstring closing quotes on separate line
543: D400 First line should end with '.', not 'n'
543: D205 Blank line missing between one-line summary and description
569:32: F841 local variable 'err' is assigned to but never used
588:1: E302 expected 2 blank lines, found 1
588: D209 Put multi-line docstring closing quotes on separate line
588: D400 First line should end with '.', not 'n'
588: D205 Blank line missing between one-line summary and description
595:9: F401 'pickle' imported but unused
627:1: E302 expected 2 blank lines, found 1
627: D200 One-line docstring should not occupy 3 lines
641:1: E302 expected 2 blank lines, found 1
641: D400 First line should end with '.', not 'N'
641: D205 Blank line missing between one-line summary and description
677:32: W601 .has_key() is deprecated, use 'in'
681:49: E128 continuation line under-indented for visual indent
692:82: E231 missing whitespace after ','
694:37: W601 .has_key() is deprecated, use 'in'
706:1: E302 expected 2 blank lines, found 1
706: D400 First line should end with '.', not 's'
706: D205 Blank line missing between one-line summary and description
724:1: E302 expected 2 blank lines, found 1
724: D205 Blank line missing between one-line summary and description
738:14: E126 continuation line over-indented for hanging indent
764:69: E502 the backslash is redundant between brackets
782:32: E261 at least two spaces before inline comment
805:1: E302 expected 2 blank lines, found 1
824:1: E302 expected 2 blank lines, found 1
824: D103 Docstring missing
833:1: E302 expected 2 blank lines, found 1
833: D103 Docstring missing
839:1: E302 expected 2 blank lines, found 1
856:1: E302 expected 2 blank lines, found 1
864:72: E502 the backslash is redundant between brackets
865:20: E127 continuation line over-indented for visual indent
865:44: E231 missing whitespace after ','
869:35: E261 at least two spaces before inline comment
880:1: E302 expected 2 blank lines, found 1
926:1: E302 expected 2 blank lines, found 1
939:48: E231 missing whitespace after ','
945:1: E302 expected 2 blank lines, found 1
956:1: E302 expected 2 blank lines, found 1
962:1: E302 expected 2 blank lines, found 1
968:1: E302 expected 2 blank lines, found 1
974:1: E302 expected 2 blank lines, found 1
980:1: E302 expected 2 blank lines, found 1
980: D400 First line should end with '.', not 'e'
980: D205 Blank line missing between one-line summary and description
996:1: E302 expected 2 blank lines, found 1
996: D400 First line should end with '.', not 's'
996: D205 Blank line missing between one-line summary and description
1005:23: E127 continuation line over-indented for visual indent
1079:64: E261 at least two spaces before inline comment
1080:13: E128 continuation line under-indented for visual indent
1081:13: E128 continuation line under-indented for visual indent
1081:61: E261 at least two spaces before inline comment
1082:13: E128 continuation line under-indented for visual indent
1083:13: E128 continuation line under-indented for visual indent
1084:13: E128 continuation line under-indented for visual indent
1085:13: E128 continuation line under-indented for visual indent
1086:13: E128 continuation line under-indented for visual indent
1087:13: E128 continuation line under-indented for visual indent
1087:21: E261 at least two spaces before inline comment
1182:29: E127 continuation line over-indented for visual indent
1184:30: E127 continuation line over-indented for visual indent
1239:91: E502 the backslash is redundant between brackets
1240:28: E127 continuation line over-indented for visual indent
1241:67: E502 the backslash is redundant between brackets
1242:33: E128 continuation line under-indented for visual indent
1242:80: E502 the backslash is redundant between brackets
1243:15: E127 continuation line over-indented for visual indent
1303:17: E203 whitespace before ':'
1305:99: E502 the backslash is redundant between brackets
1305:26: E203 whitespace before ':'
1306:29: E127 continuation line over-indented for visual indent
1307:58: E502 the backslash is redundant between brackets
1308:71: E502 the backslash is redundant between brackets
1310:58: E502 the backslash is redundant between brackets
1311:72: E502 the backslash is redundant between brackets
1313:58: E502 the backslash is redundant between brackets
1314:75: E502 the backslash is redundant between brackets
1358:1: E302 expected 2 blank lines, found 1
1358: D400 First line should end with '.', not 'r'
1358: D205 Blank line missing between one-line summary and description
1382:1: E302 expected 2 blank lines, found 1
1382: D200 One-line docstring should not occupy 3 lines
1394:1: E302 expected 2 blank lines, found 1
1394: D400 First line should end with '.', not 'y'
1394: D205 Blank line missing between one-line summary and description
1413:1: E302 expected 2 blank lines, found 0
1413: D401 First line should be imperative: 'Return', not 'Returns'
1413: D200 One-line docstring should not occupy 3 lines
1431: D400 First line should end with '.', not 'e'
1431: D205 Blank line missing between one-line summary and description
1448:1: E302 expected 2 blank lines, found 1
1448: D400 First line should end with '.', not 'L'
1448: D205 Blank line missing between one-line summary and description
1484: D400 First line should end with '.', not 's'
1484: D200 One-line docstring should not occupy 3 lines
1491:1: E302 expected 2 blank lines, found 1
1491: D400 First line should end with '.', not 's'
1491: D200 One-line docstring should not occupy 3 lines
1499: D400 First line should end with '.', not 'd'
1499: D200 One-line docstring should not occupy 3 lines
1507: D200 One-line docstring should not occupy 3 lines
1515: D200 One-line docstring should not occupy 3 lines
1523: D200 One-line docstring should not occupy 3 lines
1524:43: E128 continuation line under-indented for visual indent
1533: D202 No blank lines allowed *after* function docstring, found 1
1536: D203 Expected 1 blank line *before* class docstring, found 0
1536: D204 Expected 1 blank line *after* class docstring, found 0
1536: D400 First line should end with '.', not 'l'
1650: D400 First line should end with '.', not 's'