Add hook to modify or customize search logic

In a current project I need to modify the search results. I noticed there is no way to do this with the internal search module.

The idea behind the hook is that I can modify the properties (e.g. keywords) by using references, but I can also overwrite the whole result by returning a custom `\Database\Result`.

*I have not tested this impelementation, so this is RFC!*