Protect against point being on wrong side of limit

Includes a unit test.
Simplify markdown-block-region, remove extra same-line whitespace

Use markdown-ensure-blank-line-[before|after] functions.

Remove any trailing or leading whitespace that was left behind
previously.  For example, when the region is indicated by bracket and
underscores indicate extra whitespace:

    abc [def] ghi

When markdown-blockquote-region was called, the result before was:

    abc_

    > def

    _ghi

The result after this change is:

    abc

    > def

    ghi

Includes new tests.
Refine markdown-insert-header-dwim prefix behavior, with setext overrides

Includes unit tests
Reference-style image insertion with C-u prefix
Smart element killing

C-c C-k (markdown-kill-thing-at-point) kills thing at point
and stores important text in the kill ring for later processing.

Includes unit tests.