New states for transitioning to Withdrawn or Aborted

Sent this version out for review
refactor and update dot figure of state machine
Merge pull request #1 from mark-burnett/states-for-additional-error-handling

refactor and update dot figure of state machine
add missing lines, remove most formatting
remove weights (formatting)
add missing abort transitions
add done states

Transitions to done states generally don't do anything, and are
triggered by errors that cannot reasonably be handled.
add state machine details to spec
add descriptions to state table
remove timeout timer when signal received while registering
add missing final states
initial commit of the new state machine
extract method to define properties in some specific class
Make sure the package list goes into the correct package
add test for a state machine with a fork
make the error message more explicit about what is going on
test a looping state machine
Throw an exception if the same state or event is defined twice
add tests for expected exceptions
Merge pull request #2 from mark-burnett/states-for-additional-error-handling

Expand state machine detail