removed the default parsing of ARGV

This was cumbersome to deal with in practice.  I found myself wanting
to just pass in ARGV anyway to be explicit.  This removes implicitly
parsing ARGV when no arg list is given.
made `args` return the arg list including the trailing opts hash

In practice it was cumbersome having to deal with them separately
when in fact I wanted to just send them to my handler all together.
reworked the --help and --version handling cases

Previously it was doing a throw..catch pattern.  This was cumbersome
to handle when I went to go use it in practice.

I'm changing to just raise custom exceptions.  This makes implementation
easier as the user just wraps usage with a begin..rescue and then
handles each exception appropriately.

The option help msg is raised as the HelpExit's message so the user
can access it.
added a `data` reader for accessing the full parsed data set

So in further testing and practice, I found it helpful to have the
`args` available separate from the `opts` for inspection and validation.
However it is still very useful to have a reader that combines them
in a way that is convenient for passing to a handler of some sort.

I went back to having `args` be the arguments and added a `data`
reader that combines the arguments with the trailing opts hash.
reworked HelpExit handling to not raise with opts explanation

In practice, its better to formally provide the opts explanation
as `to_s`.  The HelpExit handling is now the same of VersionExit.
changed the value option to show the up-cased option name as the value

This is in the explanation string.  Before it would put the default
value in there.  Its kinda confusing though in practice, b/c you
really just want a generic placeholder.
removed `:default` handling, switched to `:value` handling

This allows you to pass both and actual value or a class to the
`:value` setting.  If now value is given, `nil` will be used.

I switched to this because in testing and practical use, there were
some scenarios where having 'nothing' as a parsed opt value is
desirable.  Don't want to block this for developers.

I'm also removing references to 'micro-optparse'.  The implementation
and behavior and goals are now quite different.
Merge pull request #2 from redding/kr-practice

Updates from using in-practice