Added support for explicit sequence flows, BoundaryEvents and Service
Tasks to the simple workflow definition.
Added support for explicit exclusive gateways.  We could not use the
choice step here because we did not want a corresponding fork gateway.
Also added the ability to set Ids through the StepDefinitions.  If the
id is null, one will be generated as always.  But setting a specific id
allows us to build the sequence flows we want explicitly.
Added a concept of an explicit end to a parallel instead of making the
assumption that the last element in a list is the end of the parallel.
This is because some elements may have conditional or boundary event
flows which should not be sequenced to the join gateway.  If no explicit
end is specified within the steps, then we will use the last element as
always.
Fix for nested parallel gateways which were connecting join gateways in
lane 1 to fork gateways in lane 2.
Reverting a change I made to the model to support lookups of the join
gateway by the forkgateway.  Now we keep a map in the conversion object
for this purpose and do not pollute the model with conversion
necessities.
Merge pull request #1 from ddefrance/boundary-event

Boundary event