Major re-work of services.

This is still a WIP, with lots more to do. The idea is to push the
configuration of services out of ServiceConfigOptions and into code directly
provided by the service. This gives us much more flexibility in what we can
do. For example, we can now have a service change it's runtime configuration
options based upon the user that ran it (ie: it can get API keys and add them
to a form).

Other major changes include getting rid of the concept of required_fields and
type.

Right now the only service that even remotely comes to working with these
changes is the yara service. It is currently broken at runtime, but I will
be cleaning that up next. Once that is working I'll make the necessary changes
across all services.