More improvements around maturing the API

- Chainy constructor now passing options directly to the runner,
instead of just the name option
- ::create now applies the .klass variable correctly
- ::getExtension now doesn’t search the parent, as the parent’s tasks
should be directly added to ourself, rather than inherited indirectly
- ::action has now been split into ::createActionTask and ::action, now
also:
  - accepts configuration for the action (useful for trickle plugin)
  - no longer does a double task to ensure chain data is applied,
instead we use task group v4 events instead
- mixin helper is now simplified a bit
- addExtensions helper is now simplified a bit
- addExtension helper now accepts arguments in any order, as well as a
extension configuration object
- extensions are now objects containing a method among other things,
rather than a function that has properties
- removed set action, should be a plugin, if we bundle common plugins
chainy-core will never be finished