Simplify force publish service object logic

Because we are enforcing the presence of a force publishing reason in
the controller layer, and because it's a UI feature (i.e. we enfore
admin users provide a force publish reason, but may not necessarily
want to enforce that when force publishing editions in our own scripts
or data migrations), we don't need the service object to be aware of
the need for a reason. If one is not provided, no remark is saved.
This allows the Edition::ForcePublishLogger to be made into a more
generic Edition::EditorialRemarker, which both the EditionPublisher
and EditionForcePublisher can use. It also allows for the validation
logic between the two to be consolidated and gets rid of the smelly
"stub reason" when checking if the action can be performed.