Function Operate

Part of:

package asdf
( operate < operation-class > < system > &rest < args > &key (verbose t) < version > &allow-other-keys )

Operate does three things:

1. It creates an instance of operation-class using any keyword parameters
as initargs.
2. It finds the asdf-system specified by system (possibly loading
it from disk).
3. It then calls traverse with the operation and system as arguments

The traverse operation is wrapped in with-compilation-unit and error
handling code. If a version argument is supplied, then operate also
ensures that the system found satisfies it using the version-satisfies