simplify 'get-service-fn' signature

Previously, it accepted an arbitrary sequence of keys (since graph
can handle arbitrary nesting like this).  However, that doesn't
correspond to our model of services with a flat list of service
functions.
(PE-2331) improve 'get-service-fn' error handling

Throw a better error when the service or service function does not exist
in the graph.
prefer IllegalArgumentException over slingshot

Since we want this error to simply get displayed to a user, it is
preferrable to simply throw an IllegalArgumentException.
add test case for 'get-service-fn' error handling
remove unnecessary :require
Merge pull request #85 from KevinCorcoran/error-handling-for-get-service-fn

improve `get-service-fn`