wrapper: tweak comments for 10.8

A couple of comments mentioning "10.7" as the latest release were
not updated in the previous Mountain Lion commit. Update them to
just refer to "newer" instead of a specific version.
wrapper: account for -l when checking argc

If "-l" is the first argument, record the fact in a variable and
adjust argv and argc as if had not been present. This lets the
existing "minimum arguments" check to handle the case where "-l" is
the only argument.

Previously, if "-l" was the only argument, we would end up with
a segmentation fault from accidentally doing strlen(argv[argc])
(i.e. strlen(NULL)) in the dash-prefixing code.

Reported as item #2 here:

    https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/13
wrapper: simplify arg copying

The "-l" processing that was hoisted up in the previous commit made
the "arg" variable effectively a constant. Replace it and the
associated "ofs" variable with inline constants.
wrapper: explicitly warn about unknown options

Reported as item #1 here:

    https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/13
wrapper: make errors fall through to exec()

Above the declaration of _vprocmgr_move_subset_to_user() in
10.8's launchd-442.21/liblaunch/vproc_priv.h there is a comment that
reads:

> One day, we'll be able to get rid of this...

This caused me to consider the situation where the function is no
longer available (whether or not some other workaround is required
to (e.g.) gain access to the pasteboard).

The original behavior of this wrapper program is to immediately
abort on all errors. This is acceptable behavior for programs that
are used interactively where the user can decide what to do next
(e.g. try again without the wrapper).

However, this wrapper is not typically used interactively, but more
"automatically" (e.g. via default-command in tmux; as I described in
the README). The abort-on-error behavior is much less acceptable in
this situation (it would appear that tmux was unable to create
(default) sessions, windows, or panes). For "automatic" uses, it
would be much nicer to always attempt to run the specified program
(after printing an appropriate message that describes the reason we
failed to reattach to the user bootstrap namespace).

Therefore, adjust the error handling so that we always fall through
to the code that does the exec() (while still issuing informative
messages).
wrapper: handle malloc() errors for -l processing

Handle malloc() errors that might come up while doing "login"
processing (massaging the new command's argv[0] when the "-l" option
is used).

Skip the string/argument manipulation and just use the strings that
were given in the wrapper's argv. The new program will not find that
its argv[0] starts with a dash, but we will at least give it
a chance to try to run (although it may also face serious problems).
wrapper: show the program's name in major messages

Since this wrapper program is typically used in an "automatic"
(non-interactive) way, it may be helpful to the user to include the
program's name in some of the messages it prints.

Add the program's name to the following messages:

 * The "unsupported old/new OS" messages may appear by themselves
   (e.g. before the wrapper is updated to handle a new OS X release).

 * The message after the reattach_failed label will also be issued
   after any earlier message (except the old/new OS message).

 * The message for a failed exec.

Suggested-By: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/pull/14