Close #32: Finish definition of plugin interface

- A Plugin should have name
- A Plugin should register on the environment
- A Plugin should provide the composer package
  that includes the supported Ginger\Type classes
- A Plugin should provide a Type => WorkflowMessage map