workflows: improve Holding Pen main table

* Adds concept of data types to Holding Pen display, so users
  can filter on submissions, records etc. using the attribute
  "object_type" in workflow definitions.

* Removes some uninteresting/unused columns in the Holding Pen
  main table and adds a new columns called categories containing
  any record subjects found, if applicable.

* Cleans some blueprint URLs.
workflows: regex addition to category filtering

* Updates the category filtering task to allow regular expression
  syntax when defining which categories to halt, continue or stop
  the workflow.
workflows: clean Holding Pen blueprint

* Cleans some blueprint code and routes for resolving widgets.
* Amends the approval widget and record details templates/JS to
  make use of these changes.
logging: fix issue with db.func.now

* In HstException a database error was raised when using db.func.now
  to set the current datetime. Now using datetime.now instead.
workflows: Holding Pen updates and widgets

* Adds new tag system in the main Holding Pen display.
* Changes approval widget layout.
workflows: improve exceptions in bibsched

* Updates the exception handling to better handle exceptions in
  workflows when running a workflow in a BibSched task.
* Improvements to category filter.
workflows: Holding Pen display updates

* Updates Holding Pen main table display with better column sizes.
* Improves detailed display of workflow definition.
* Refactors imports in marcxml_tasks.
* Fixes an exception dealing with single or multiple categories
  when extracting subjects from record object.
* Updates in harvesting workflow tasks.
workflows: fixed javascript hotkeys + tagsinput

* added hp_detailed_layout.html
workflows: add bootstrap-tagsinput package

* Adds a new JavaScript package for use in the holding pen
  display.

* Adds the new package to bower/Grunt file.
celery: configuration

* Changes celery configuration to use msgpack instead of
  pickle and use rabbitmq instead of redis broker,
  after some problem under heavy load.
workflows: task addition and modification

* Adds options for the foreach loop, we can now cache the
  list to go through it will then allow to five the choice
  to the user if he wants to priviledge CPU vs Memory,
  cache uses few CPU but a lot of memory and doesn't provide
  a dynamic list. Without the cache option, we recompute the
  list each time so we use much more CPU but we keep just
  the data needed so few memory, and the list is still
  refresh for each loop.

* Refactoring of spaces used into extradata of the engine.

* At the end of the foreach, obj.data takes the value it
  has before the foreach, in the previous version we were
  keeping the last value of the foreach.

* Adds the function filtering_oai_pmh_identifier which
  allows you to filter the identifier. Mainly used to
  avoid processing already processed one.

* Adds features to  inspire_filter_category, now parameter
  can be passed throught the extra_data of the engine.

* Fixes some bugs with regex in inspire_filter_category

* Adds the function update_last_update which allows you to
  update the last_update time of a repository. It is
  important because the user can choose exactly where in
  the workflows he considers that a crash is not a problem
  for harvested documents.

* Adds the different features needed by the change from
  pickle to message pack in Celery, to the container for
  BibWorkflowObject exchange.

* Fixes bugs, optimizes etc ...

* PEP8 + option for workflow reviews

* Deletes not informative logs.

* Modifies the different workflows to take into account the
  previous modification made.
workflows: fix in marcxml_tasks
grunt: fixes Prism configuration
workflows: custom filter, reenabling all functions

* Adds the inspire_filter_custom function which allows to
  filter record by examinating some field of its bibfield
  It is a generalization of inspire_filter_category.

* Reenables all the functions in full_doc_process
  workflow.

* Allows the use of the star in filtering

* Adds some control over the number of workflows generated
  it is to avoid the memory saturation or the messaging
  queue limit.

* Adds some protected name for workflows to avoid possible
  conflict with new task an new user data etc.

* Fix a bug in the if logic task.

* Add some functions to control workflows states.

* Fixes PEP8 and clean code