WIP search: engine based on query parser

This is initial work on separating search engine from formatter, ranker, sorter and it brings new architecture using *Flask-Registry* for basic search unit searchers. 

**Please note that naming is not yet finished and especially `invenio.modules.search.{api,engine}` will change in near future.**
I believe `except Exception:` is to be preferred, unless we are doing something low-level.
https://docs.python.org/2/howto/doanddont.html#except