Optionparser strict

This is to continue discussion started in https://github.com/elixir-lang/elixir/issues/2262.

This is only a tentative implementation to test ideas. Here I stop on the first invalid option (whether it is undefined or has bad value).

But it should be straightforward to continue parsing after seeing an option with bad value by matching on `:value`.