[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)
}
```

Apart from just looking into the classes and methods that this plugin interacts with in TokenMacro, I haven't really looked at it in detail.  One thing I do remember about it was that in some parts of it it tried to get access to build specific entities such as participants and culprits, which I think were in AbstractBuild but not in Run.  The sound like things that could be in Run though, yes/no?

I'll get the source for it and see what would be involved in generalising it to use Run.