getopt: move Option out of the global namespace.

* src/getopt.lua (_G.Option): Rename from this...
(Option): ...to this local declaration.
(M): Export Option as a new public interface.
Remove TODO.
* template.lua, specs/specl: Update.
getopt: format long and short options properly.

* src/getopt.lua (fmtOpt): Display two leading dashes for long
options.
(usageInfo): Indent past the short option column where only a
long option is being displayed.
getopt: only add default help and version when user supplied none.

* src/getopt.lua (makeOptions): Make two passes through the option
list. The first to collect all option declarations, and the second
to make an index.
(appendOpt): Factor out, and add a nodupes parameter to prevent
addition option specs being added when any of the option letters
they use have been claimed already.
Use it to only add default help and version options when the user
didn't specify their own already.
getopt: move options and prog out of the global namespace.

* src/getopt.lua (usage): Require prog as a parameter with options
inside it.
(processArgs): Likewise.
* template.lua: Update.
getopt: insert a blank line between usage and purpose.
getopt: support GNU style --help and --version output.

* src/getopt.lua (usage): Take arguments from the prog parameter
instead of inspecting global variables.
If present, wrap paragraphs from prog.description and display
between purpose and option table.
(version): New function. Display version info according to prog.
version and prog.copyright.
(processArgs): Use it.
* template.lua: Update.
* specs/specl: Update.
getopt: don't display the full help for option errors.

* src/getopt.lua (processArgs): Show the error and a short help
message for option errors, and save the full blown help screens
for '--help'.
(usage): Simplify concatenations slightly.
specs: add a skeleton specl spec for getopt module.

* src/getopt.lua (test): Remove.
* specs/getopt_spec.lua: Reimplement as specs.
* Makefile.am (SPECS): Add spects/getopt_spec.lua.
* specs/getopt_spec.lua): More specs for default option overrides.
* src/getopt.lua (processArgs): Fix a small scoping bug uncovered
by the new specs.