Allow Unexpected Values

I have an app that needs to parse the options multiple times (once for global options, once for a provider i dynamically load) and there will be unexpected values in the 1st run of the parse for global options.

This uses a variable of $this->allowUnexpected to be set to true to disable the exception when parsing.

Thought this might be useful for others so i made this pull equest.