Another major round of cleanup.

This removes a lot of things which made services easy to write but less
flexible. We want to move to making services easier to write.

The idea is that things like configuration and runtime options/forms are
now generated by the service. This provides a greater amount of flexibility.
For example, prior to this change it was not possible to present the user
with option values defined based upon the user (eg: api keys).

This is a fairly large change and rather intrusive. I will be documenting it
shortly along with cleaning up all the services to reflect this change.