Support Windows-style options.

This commit adds support for front slash to be used for options on Windows.

Front slashes are the standard style for Windows CLI programs.  Also,
Windows doesn't typically differentiate between short and long options
because a front slash works for both.  Finally, Windows CLI applications
typically support /? for help.

So given the above, this commit makes the following modifications only
when running on Windows:

- Adds support for Windows-style options with short names (/v)
- Adds support for Windows-style options with long names (/verbose)
- Adds an additional Windows-style help entry (/?)
- Modifies the help (usage) display to show Windows-style options
  (example: /v for short names, /verbose for long names)
- Note that in all cases the unix style -, and -- still work as well
  on Windows for consistency among operating systems.

Finally, the documentation has been updated to reflect the new
capabilities.
Improve support for Windows-style options.

This commit expands upon the previous commit to add support for
Windows-style options.

At the request of the go-flags author, the code has been modified to
use build constraints for windows-specific functionality instead of
selecting at runtime.

As noted by @jessvdk, Windows typically uses a colon for the option name
and argument delimiter.  This code adds support for both styles, but
doesn't allow the two to be mixed.  That is to say /foo:bar and --foo=bar
are acceptable, but /foo=bar and --foo:bar are not.
Merge pull request #39 from davecgh/support_windows_style_options

Support Windows-style options.
Major internal rewrite

Make parser, commands and groups conceptually consistent.
This introduces small API breakage, but only on API that is
rarely used. This also privatizes some of the previously
public fields and functions that were not supposed to be public.
Added some short flag tests
Added error type to string
Move short_test to flags_test package
Fix order of assert reporting
Added short flag tests for various value specs
Move unknown_test to flags_test package
Do not print errors in tests
Fix expected error for short tests
Fix parsing logic of short options
Make sure to return error when parsing short option
Fix test for error in failing short tests
Move ini related things to separate parser
Make TIOCGWINSZ a private const
Run go fmt
Use platform style option delimiters
Fixed removal of ( in windows optstyle