Merge pull request #2311 from alco/option-parser-fixes

Do not assume invalid options are of boolean type
Always return nil for undefined options (#2308)
Bump Hex requirement
Return invalid options as strings