Seperate branch until the last pull request is accepted or rejected.
 * Added support for multiple quirks mode settings:
 *    - QUIRKS_MODE_ALLOW_UNDEFINED_OPTIONS - allow undefined options to be passed to the script.
 *        when enabled, it is the original quirk mMode behavior.
 *    - QUIRKS_MODE_REQUIRED_OPERAND_COUNT - require # operands to be passed
 *
 * @example $obj->setQuirksMode(GetOpt::QUIRKS_MODE_ALLOW_UNDEFINED_OPTIONS,true);
 *
 * @link https://github.com/ulrichsg/getopt-php/issues/28
 * @link https://github.com/ulrichsg/getopt-php/issues/14

 - misc code optimization
 - misc code cleanup for better readability