WebAccess: OpenID and OAuth authentication

* Introduces OpenID and OAuth external authentication plugins.

* Support out of the box several authenticatio providers (including
  Google and Facebook).  (addresses #1124)

* Merge note: this commit is exactly the one provided by Alper.  All
  amendments will be available in the next commit.

Reviewed-by: Samuele Kaplun <samuele.kaplun@cern.ch>
WebAccess: ORCID support

* Introduces support for OAuth2-based ORCID authentication by exploiting
  the external authentication support to OpenID/OAuth1/OAuth2 introduced
  with the previous commit.

* Amended previous commit by cleaning up INSTALL guide and root-level
  Makefile.am, introduced configuration of providers in invenio(-local).conf.

* In the previous commits, the new provided plugins were implemented
  assuming to be instantiated per-every request, while each plugin
  is instantiated only upon server loading and can't hence share
  request-oriented information. For this reason a new attribute called
  "g" (mimicking upcoming Flask global "g" proxy) to the req object.
  (closes #1124)

Tested-by: Tibor Simko <tibor.simko@cern.ch>