Implementing support for multiple workflow definitions.

This is a similar concept to pull request https://github.com/silverstripe-australia/advancedworkflow/pull/99, however more focused on triggering only a single workflow instance at a time (from multiple that may have been assigned).

![0](https://cloud.githubusercontent.com/assets/3703500/4820997/54b191a6-5f22-11e4-8ee9-a2d0f63c8667.png)

This avoids the possible conflicts that were outlined in the previous thread, however allows extension when we choose to approach that problem.

![1](https://cloud.githubusercontent.com/assets/3703500/4820998/5aff7b0e-5f22-11e4-90f5-422850fc259a.png)

@nyeholt