Update the config parser using code from python2.7

Notably this adds support for valueless options ( e.x. the option "required" which can be added to filters which must succeed.) Most of the code comes from the "allow_no_value" kwarg support added to ConfigParser in 2.7

This was created in response to GitPython erroring out on even the most simple tasks, because we've got a required filter in the global config.