Correctly work out action triggering new state.

The existing latest_version_audit_entry_for method returns the *last* audit
entry for a particular state. But if we want (for example) to know who was the
submitter for an edition, we need the *first* entry for the submitted state.

This commit adds an audit_entry_for_state_change method which returns the audit
entry that represents the state change itself.

It also makes a change to the submitted_edition test factory to correctly set
up an audit history including creation and submit events.
Use audit_entry_for_state_change in submitted_by.