Added start and end states. Added a workflow engine, so you can pick between a WorkflowEntity and a WorkflowEngine. Use State and Trigger classes instead of strings.