Update file extension documentation
Remove wiki link following with <RET>

According to the [major mode coding conventions][1], "[m]ajor modes for
editing text should not define <RET> to do anything other than insert a
newline."  We now have a unified keybinding for following links (C-c C-o)
that can be used instead.

[1]: http://www.gnu.org/software/emacs/manual/html_node/elisp/Major-Mode-Conventions.html
Separate promotion and demotion from completion

Promotion and demotion functions now cycle by default, rather than
demoting down to no markup.  Completion is a distinct function.

Bold and italic can now be "promoted" and "demoted" since there is no
specific cycling function.

Markup completion functions now return nil if markup was complete and
non-nil if markup was completed.

Report informative messages when completion fails or has no effect.

Fix some comments and docstrings.

Update existing tests and add new tests.
Revised draft of 2.0 keybindings

Thanks to Scott Jaderholm for reminding me that Emacs key binding
conventions prohibit major modes from using C-c <letter>.  Such
sequences are reserved for users.  Therefore, it's likely that the old
keybindings will remain largely intact since it's not clear that they
could be significantly shortened.

As a result, this patch rolls back most of the keybdinding changes in
4930f1c, but not all.  In particular, the org-mode heading navigation
commands were kept, which means that C-c C-p (the physical styles group)
was clobbered.  Use the commands under C-c C-s (logical styles) instead.

The documentation has been updated accordingly.

Summary of changes:

* New outline (heading) navigation commands were introduced:
  C-c C-n, C-c C-p, C-c C-f, C-c C-b, and C-c C-u.
  The previous sequences C-M-n, C-M-p, C-M-f, C-M-b, and C-M-u
  have been restored to their original definitions.

* The following element insertion sequences have been added:
  C-c C-a L (reference links),
  C-c C-t ! (level one Setext heading), and
  C-c C-t @ (level two Setext heading),
  C-c C-a f (footnotes).

* The following element insertion sequences have been deprecated:
  C-c C-a r (reference links),
  C-c C-t t (level one Setext heading), and
  C-c C-t s (level two Setext heading).

* The following element insertion commands have been removed or
  overridden, but have equivalent functionality elsewhere:
  all footnote commands under C-c C-f,
  all physical style insertion commands under C-c C-p.

* Alternative sequences have been added for cases where arrow keys may
  be difficult to use:
  C-c C-x u for M-<up>,
  C-c C-x d for M-<down>,
  C-c C-x l for M-<left>,
  C-c C-x r for M-<right>, and
  C-c C-x m for M-<return>.
Fix markdown-code-at-point-p false positive

This function incorrectly identified code for first two characters of
line in blocks with no code.  This is because we were
checking (match-beginning 0), but the match data wasn't being set if the
loop didn't execute.

Includes a test case.

Also update some related docstrings.