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.**
It should not matter. These particular exceptions exist to break out of things on demand, so anyone priviledged to kill the proccess (`SIGINT`) or any piece of code that _demands_ termination (`sys.exit`), should be able to do so without us interfering. If we do interfere, the signal is lost.