morebits, protect: move edit/move protection preservation logic into morebits

This logic preserves existing move protection settings when edit protection is applied by itself, and vice versa.
It is also needed in batchprotect, and it should also be useful functionality for end-users, so it now lives in Morebits.wiki.page for all to use.
morebits, protect, batchdelete: a few bonus fixes

- protect's "custom expiry time" prompt: if you cancelled the prompt and then submitted the form, an invalid value would be submitted to the API.
- Morebits.wikitext: no double space before commented-out images.
- batchdelete: now shows a status message when you first open it, just like unlink and batchprotect