Abstract data provider out

Introducing the concept of `RestfulDataProviderInterface`. That will allow us to have a data provider for SearchAPI, another for QueryDBTNG, …
I agree 100%. Actually I did use _list_, but it turns out that you cannot use reserved words like _list_ or _delete_ as your method name. I belive that _index_ and _remove_ are close seconds.