(TK-19) Add `service-symbol` and `get-services`

This commit does the following:

* Adds a function `get-services` to the `Service` protocol.
  This allows services to get a sequence of all of the
  other services in their app, which will allow for more
  sophisticated behaviors / interactions between services.

* Adds a function `service-symbol` to the `Service` protocol.
  This function returns the clojure symbol for the service
  definition (assuming that the service was defined using
  `defservice`).  This will allow us to, e.g., use service
  namespaces/names in config files, and, when combined with the
  `get-services` function above, to write services that are
  capable of looking up other services based on their
  symbol.
I do.  schema/defn is not being used anywhere in this namespace; schema is only being used as part of the implementation of a function.  There are 20+ functions in this namespace that are all using pre/post conditions without schema/defn, so I think it would look quite weird to just port one random (internal, private, helper) function in the middle of all of the rest of those over to use schema/defn.

If you feel strongly that using schema here is a blocker for this PR then I will close the PR until I have time to port the whole namespace over.