Now pass all arguments to the init() method.

Rather than tying initialization parameters to Moose attributes,
we just put them all in a hash.  This interface is less strict,
but makes it easier to add new parameters in the future.