Create services using shared_ptr<> instead of unique_ptr<>

This may be temporary or become an option of some kind.  I prefer
unique_ptr<> for this, but that disallows the service class from using
std::enable_shared_from_this<myservice> properly.  The biggest problem
is lifetime management, if services start passing around a shared_ptr to
themselves that could be bad (but that's exactly what I was trying to
do!)