BibField: new producer section added to config

* New `producer` section inside the configuration file that allows
  to produce different low level outputs for a given field.

* First release of two producers, one for marc and one for dublin
  core.

* New functions `guess_legacy_field_names` that, using the legacy
  rules from the configuration files try to find which is the field
  name for a given tag from a given master format.

* Better legacy export as marc that uses the new producer capability.

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
Co-authored-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
BibField: misbehavior when parsing rules fixed

Signed-of-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
Co-authored-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
BibField: better calculated fields handling

* New internal key added `__calculated_functions` to store how to
  update the cached value of the field.

* All the fields marked with `@do_not_cache` are not longer stored
  stored inside rec_json, only the key is reserved.

Signed-of-by: Esteban J. G. Gabancho <esteban.gabancho@gmail.com>
BibField: new decorator @only_if_master_format added

* New decorator @only_if_master_value, similar to @only_if but in
  this case we can create a boolean expression based on `value`,
  which is coming from the master format before evaluation.

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: bibdoc integration introduced

* Adds two new calculated fields to interact with files from
  BibDocFile, one `files` which provides a dict containing some
  useful information about the files and `bibdocs` which contains
  the BibDoc object itself.

Signed-off-by: Esteban J. Gabancho <esteban.gabancho@cern.ch>
BibField: continuable vs fatal errors.

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: `is_type_isbn` fixed

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: '__eq__' fixed to better compare records

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: `is_empty` updated

Signed-of-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: `schema` added to `split_blob`

* When splitting the blob it might be the case that the schema is
  needed, moreover if the reader accepts several schemas for the
  same input format.

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: remove None values from the Json record

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
BibField: field filtering added to `get_record`

* Modified `__repr__` to only display relevant keys and hide keys
  of the form `__key`

Signed-off-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>