Fix unexpected string parsing with empty arguments

Fix for an option with type String (e.g. `{foo: String}` that
does not get an argument passed e.g. `./myprogram --foo`.
The value for foo should be "" (empty String) and not
`true` (Boolean)

Fixes #31
Move inline tests to tap test
v2.2.0