Cancel for scheduling should make publish_at nil

... which needed:

1. the validation for publish_at to be a future
time to be moved to the state_machine
2. publish_at to be editable when in state
scheduled_for_published.
Combining 2 tests, adding a new one for edge case
Adding Edition#locked_for_edits?