GNU help format

Makes the help conform to the convention used by GNU programs

The patch set consists of three fixes which you may cherry-pick if you like 1. Adds optional usage method and output as is common in GNU-utils 2. Adds optional synopsis which some programs show after the usage line 3. Reformats the options list in the help to show short opts before long.

Also updated the unit tests to cover the changes.

---

Example illustrating the impact of the changes.
```
require 'trollop'
opts = Trollop::options do
  usage "[OPTIONS] ARGS"
  synopsis "About this program"
  opt :dry_run, "Dry run"
  opt :string, "Takes a string", :default => "foo"
  opt :flag, "A Flag", :default => true
end
```
Produces:
```
Usage: command [OPTIONS] ARGS
About this program

Options:
  -d, --dry-run            Dry run
  -s, --string=
         Takes a string (default: foo)
  -f, --flag, --no-flag    A Flag (default: true)
  -h, --help               Show this message
```