Introduces Executor Services.

Service is now split into Service and ServiceEquiv. You can create a
Service which, when started, invokes a function to create an
ExecutorService. This Service acts as an Executor itself, so you
can execute any function on that service. It also knows enough about
common executors and queues to tell when two of these services are
equivalent.

riemann.config's add-service! is now just service!. service! may
optionally re-use an existing service from the current core. service!
now returns the service it chooses, so you can bind it to a variable and
use it within the config. This makes it possible to create executor
services in the config, bind them to variables, and use them to schedule
IO-bound functions for asynchronous execution.