[WIP] Workflow build step

Changes to allow the plugin be used in a Workflow.  Would be good if @slide (et al) and @jglick could review.  In particular... look for `TODO` markers in the changes I made.  These were things I was not sure about.

Atm it works using the base 'step' step (i.e. you need to specify the $class) e.g.
```
node('master') {
	catchError {
		// Do stuff ....
	}
	step($class: 'hudson.plugins.emailext.WorkflowPublisher', recipientList: 'tfennelly@localhost', subject: 'Build failed', content: 'The build failed', attachBuildlog: true)
}
```

I pulled the workflow specific code up into an extension of `ExtendedEmailPublisher`.  I think it's cleaner this way.

Once the workflow apis are published (?) we can build a dedicated step for this, it would look something like the following (see [BuildStep-Job-with-step](https://github.com/tfennelly/email-ext-plugin/tree/BuildStep-Job-with-step))
```
node('master') {
	catchError {
		// Do stuff ....
	}
	emailext(recipientList: 'tfennelly@localhost', subject: 'Build failed', content: 'The build failed', attachBuildlog: true)
}
```

Support for “culprits” and the like is not available in `Run` yet. I am not sure what Token Macro needs that information for, but for now it could just check for `instanceof AbstractBuild`, while still having unrelated things work on any `Run`.