records: enhance the API to create empty records

Signed-off-by: Esteban J. G. Gabancho <egabancho@gmail.com>
jsonalchemy: enhance default value search

* Additionally to setting the default value, the meta-metadata for the
  field is guessed from the field definitions following this rule
  order: `creator`, `derived`, `calculated`. If none of them is found
  every meta-metadad field is set to `UNKNOWN`.

* Convenience property `additional_info` added to SmartJson

Signed-off-by: Esteban J. G. Gabancho <egabancho@gmail.com>
jsonalchemy: refactoring fixes

* Fixes issues in jsonalchemy found during testing deposit module.

Co-authored-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
access: string translation fix

* Fixes issue caused by trying to use translated strings
  to access a dictionary.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
restful: API unit test base class

* Adds base class for API unit tests to make creation of access tokens
  and API requests easy.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
oauth2server: initial release

* Initial release of OAuth2 provider for Invenio.

* Adds settings view for configuring applications and personal
  access tokens (WIP).

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
webhooks: initial release

* Adds REST API endpoint for receiving webhooks notifications
  from external services and pass the request payload to a
  Celery task for background processing.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
restful: apikey and oauth2 authentication support

* Adds support for API authentication via both API keys
  and OAuth 2.0.

* Adds pending deprecation messages to API authentication, which
  will be replaced by OAuth 2.0 personal tokens authentication.

* Fixes an issue where API response headers would include a
  set-cookie header.

* Aligns unauthenticated response status code to 401 for API key and
  OAuth authentication.

* Downgrades empty session log message from error level to debug
  level.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
accounts: settings initial release

* Adds new settings blueprints and templates for easy creation of user
  settings (WIP).

* Moves views from module to package blueprint.

* Adds CFG_ACCOUNT_MIN_PASSWORD_LENGTH configuration variable.

* Updates form text labels.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
formatter: encoding error fix

* Fixes an encoding error due to CFG_SITE_URL being unicode.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
login: fix permission issue for guest user

* Fixes a permission issue where a guest user did not have a list of
  permitted restricted collections calculated, causing issue with
  e.g. facets when viewing restricted collections (e.g. restricted to
  role anyuser).
oauthclient: initial release

* Adds new module oauthclient for performing OAuth authorization
  flows.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
celery: before first request processing fix

* Fixes an issue where before first request functions where not being
  run, causing certain registries not to be initialized

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
messages: icon library change

* Change icon to Font Awesome instead of Bootstrap library.
leagcy: translation string fix

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
installation: remove library (ZENODO only)

* Removes PyLD due to Python 2.6 requirement.
search: template macros import fix

* Fixes template to import from correct template instead of the
  base template.

Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
deposit: widget templates and js fixes

* Fixes problems introduced in Bootstrap 3 migration.
oauthclient: squash