spike(services) - introduce services and injected data layer.

This spike introduces the concept of services and injected data layer.

Big changes:
- BaseModel/Resource does not have any data layer logic, it just forwards the call to the service layer which will actually handle the request
- BaseModel will resolve default values specified in the schema if not already done, this is handy for internal calls between endpoints
- BaseModel no longer listens to Eve default events, this functionality is moved in BaseService where we control the `pre_` and `post_` action events
- BaseService can have standard validation if needed
- extracted the default Eve implementation for the data layer in `eve_backend.py`, this decouples the services from the data layer implementation

Things remaining to be done: 
- rename `BaseModel` from `superdesk.models` to `BaseResource` and all the derived classes to end with `Resource`.