Calling /v2/service_instance/<id> requires the broker client to be
either space developer of a user's space or have `cloud_controller.admin`
authority. To remove this requirement, BackingAppManagementService was
updated to accept service and plan name as arguments, so now getting
these values is a responsibility of a caller. In case of update / delete
both values can be extracted from the request, for management operations
they now have to be provided.
Also, this commit introduces ATs refactoring to make sure App Broker can
work without `cc.admin` permissions and without being a org manager.
This is done by separating CloudFoundryService to User and Broker
implementations. UserCloudFoundryService can only create / update /
delete service instances in own space and org, which broker UAA client
has no access to. BrokerCloudFoundryService can work with the backing
apps, services, spaces etc.