Allow setting a workflow state by its name (Closes #6).

Also ensures that when ``name in TheWorkflow.states`` is ``True``,
``TheWorkflow.states[name]`` doesn't raise ``KeyError``.