Extract an interface for creating service instances

[#65262468]
Refactor CreateService API to only return an error

In the case when the service was already created, we should only return a custom
error type. Booleans aren't the best way of communicating this.

[#65262468]
add test for binding services

[#65262468]