Clarify order and promotion/demotion for horizontal rule strings

Add unit tests for prefix arguments.
Don't consider newly inserted headers to be incomplete

ATX headers with two spaces should be considered complete, so they can
easily be cycled after insertion if desired.
More accurate matching of atx headers in edge cases

For example, Markdown.pl considers "##" to be a level one header with
text "#".

Includes test cases.
Fix date in history
URI insertion

Includes unit tests.
Don't highlight comments in pre blocks