Improve parsing to set NULL if not exist

While parsing the configuration, if the setting does not exist the
parser will not return -1 to signify error, instead it would set NULL
and return 0. This is because there will be cases where some settings
are not necessary and it is up to the function that uses the
configuration to throw an exception, not the parser.

In short, the parser's job is to parse configurations if it exists,
rationale of which configurations are definitely required lies outside
of the parser.