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 know, but as I'm not sure what is happening in `invenio.legacy.miscutil.{solr|xapian}utils_bibindex_searcher` I wanted to catch all not to accidently break search. If you are sure that no `SystemExit` or similar exception can happen inside these modules than we can switch to `except Exception`.