Update readme and add type aliases
Default array values to []
Simplify Parser used_options
Alias to_h to_hash
Fix doc typo
Add NullOption and default to using it

A NullOption is one whos return value we don't care about. For example,
you might just want a `--version` option which simply prints the
version and exits. In this case, having a `true` value in `to_hash` is
really just noise. We probably don't care about it, using NullOption
discards it.

I think using this for Options#on makes sense because this is logical:

    opts.on '--version' do
      puts VERSION
      exit
    end

Rather than:

    opts.add '--version' do
      puts VERSION
      exit
    end

And defaulting to a StringOption. This also means you have to be
explicit about adding such an option, which is a good thing.