Fix name of Messager property of Message struct

Had been "Message" (no trailing "r"), now is "Messager". Thus follows the
pattern of, e.g. the Response type, which has a Responder property of type
Responder.
Factored out tiny isExec function for checking for executable files

Was used in all of two places, but seems a bit clearer (esp if there's ever a
need to be more careful about what executable means -- e.g. can be executed by
this script, not just by some user somehow).
Fix the response to the -help flag to include the Usage() message.

Before this, you would only get the Usage message if you passed in the wrong
number of arguments.  Specifically, if you passed in -help, you'd get the list
of *options*, but it wouldn't tell you the non-optional parameters needed.

Fixed this by moving the definition of the flags.Usage() var up above the call
to flag.Parse().  That way (apparently), the flag package defaults to invoking
Usage().