base: footer modified

* 'submit' text and link swapped out for 'deposit'

Signed-off-by: Jake Cowton <jake.calum.cowton@cern.ch>
utils: slugify text function addition

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
search: collection template loading

* Introduces collection specific templates "collection_{name}.html" with
  fallback to the default "collection.html".

Reported-by: Esteban J. G. Gabancho <esteban.gabancho@gmail.com>
Signed-off-by: Charalampos Tzovanakis <drjova@cern.ch>
search: fix copyright year

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
base: fix static files serving from DocumentRoot

* Implements Nginx's "try_files" like functionality using custom wsgi
  middleware for Apache and WSGIScriptAlias for invenio.wsgi together
  with mod_rewrite.

* NOTE regenerate your apache configuration by running
  `inveniomanage apache create-config`.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
Tested-by: Yoan Blanc <yoan.blanc@cern.ch>
base: wsgi middlewares reorganization

* Fixing DebbugedApplication middleware usage.

* Using an Apache environment variable to detect when to apply
  the WSGIScriptAliasFix: `WSGI_SCRIPT_ALIAS` pointing to the
  script name.

* NOTE regenerate your apache configuration by running:
  `inveniomanage apache create-config`

Signed-off-by: Yoan Blanc <yoan.blanc@cern.ch>
Reviewed-by:  Jiří Kunčar <jiri.kuncar@cern.ch>
deposit: WTForms version to be <2.0

* Fixing WTForms to <2.0 as Flask-WTF doesn't support it yet.

* Updating Flask-WTF to 0.9.5.

* Updating WTForms-Alchemy to 0.12.4.

* Fixing the build where _unset_value was not found.

Signed-off-by: Yoan Blanc <yoan.blanc@cern.ch>
search: collection template loading

* Supports collection specific templates by id "collection_{id}.html"
  with fallback to the "collection_{name}.html" and "collection.html".

Signed-off-by: Charalampos Tzovanakis <drjova@cern.ch>
restful: addition of validator for restful API

* Adds support to check if a datetime string is in UTC ISO
  format. It also transforms the format of error messages
  in order to be a list of dictionaries.
  Example: `{"code": c, "message": "a message", "field": f}`

Signed-off-by: Konstantinos Kostis <konstantinos.kostis@cern.ch>
messages: code refactoring and REST API addition

* Adds new REST API for messages.

Signed-off-by: Konstantinos Kostis <konstantinos.kostis@cern.ch>