BibField: clean atlantis.cfg demo set up

* Field names and legacy rules fixed to match demo site tag set up.
  (closes #1557)

Signed-of-by: Esteban J. G. Gabancho <esteban.gabancho@cern.ch>
Bibfield: refactor bibfield_config_engine.py

* Adds the possibility to use all the decorators in any kind of
  field (real, calculated or derived), except @inherit_from which
  is only available for real fields.

* New decorator @only_if_master_value, similar to @only_if but in
  this case we can create a boolean expresion based on `value`.

* Takes out from the configuration dictionary the legacy rules to
  give a better interface to this rules.

WARNING: the export to legacy marcxml is not working because of
this change. Next commit will fix it.
Bibfield: gess legacy field name added

* This new method inside bibfield API uses the legacy rules to
  guess which is the corresponding match for a given list of
  fields.
BibField: bibdoc and fft integration

* Introduces new fields to interact with files as well as fft and
  url better handling

* Updates bibfield_jsonreader.py to use @only_if_master_value
BibField: producer capability added

* It adds a new section inside the bibfield configuration file,
  'producer' where the rules to produce other master formats
  can be added.

* New low level API to provide the produced formats.

* Fixes legacy_export

* New internal key added `__calculated_functions` to store how to
  update the cached value of the field
BibField: fix missbehaviour when parsing rules

Co-authored-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
BibField: fix legacy export for non strings

* When trying to produce legacy marc it searches for the string
  representation of any value.

* Enhance python expression allowing any 'one line' python
  expression.
BibField: continuable vs fatal errors
BibField: Several producer rules in the same code
BibField: Add ctx variable 'value' to producers
BibField: fix for missing producer rule

* Changes MARC producer to catch and log errors when no producer rule
  exists for a given field.
BibField: fix utf8 encoding problem
orcid: fix search url

* Fixes ORCID search url.
sherpa_romeo: improve error handling

* Increases cache timeout in order to create a temporary db with journals and
  publishers.

* Handles parse errors in ElementTree, caused usually by bad formatted data
  returned from the service.
jinja2utils: add date formatting template filter

* Adds pretty_date Jinja2 template filter.
OAIHarvest: fix for app context

* Fixes issue with oai_harvest_daemon running outside Flask
  application context.
web_api_key: initial port to Flask.

* Moves `web_api_key` logic to the model.

* Refactors functions to work with sqlalchemy and flask request.

* Refactors `web_api_key` to work with model functions.

* Updates `web_api_key_regression_tests`.

* Adds a decorator `invenio_api_key_authenticated` for authentication
  through an api_key.

Signed-off-by: Konstantinos Ntemagkos <konstantinos.ntemagkos@cern.ch>
BibCirculation: remove double imports

* Removes double imports.
sqlalchemyutils: change field to mutable type

* Decorates JSONEncodedTextDict with MutableDict due to non-
  propagating changes from JSONised dictionary to database.
BibDocFile: fix typo

* Fixes typo in comment.