Mark more sexps

These new functions add the ability to mark s-expressions, which provides a good start towards the ability to mark semantic units of the program (at least for Lisp programs).  I wrote this about a month ago and have found it to be very useful.  It is even more useful when paired with some code to move the cursors to the start of the next sexp like this:

``` elisp
(defun cycle-sexp-cursor-position (arg)
  "Move the point between the end of the last sexp and the
beginning of the next.

The first time it is called, it will move the point to the
beginning of the next Sexp.  If called again immediately
\(without any intervening commands, it will move the point to
just after the last sexp.

Continued use will cycle through this point immediately after the
last sexp, the point of the next comment following the sexp \(if
applicable), and the start of the next sexp.  These are three
likely places where you might expect the start of the next
logical piece of code.

With negative prefix argument the point will be set to just after
the last sexp.  With C-u, prefix argument 4, the point will be
set to just before the next sexp."
  (interactive "p")
  (cond ((> arg 1)
         (loop while (forward-comment 1)))
        ((< arg 0)
         (loop while (forward-comment -1)))
        ((eql last-command 'cycle-sexp-cursor-position)
         (cond ((looking-at "[ \t\n]")
                (search-forward-regexp "[ \t\n]+"))
               ((= 11 (syntax-class (syntax-after (point))))
                (loop while (forward-comment 1)))
               (t (loop while (forward-comment -1)))))
        (t (loop while (forward-comment 1)))))
```

However, such a utility is outside of the scope of the MC library.

Note: I cannot get some of the tests to pass even though they seem that they should (and do work when performed by hand).  Basically, the tests that require Emacs to treat comments as comments (as forward-sexp should), fail.  This shouldn't happen if the buffer is in the proper mode, but maybe my tests are failing to set the proper mode (although, even in those cases, the result makes little sense)

In addition, I see that other tests that I did not write also fail, so I wonder if there is something else going on here.  I wonder if you could provide some guidance or just confirm the behavior?