allow $input in constructor so we don't need to pass it every time we parse()
Moved lots of stuff around

- Rename PropertyFactory to ValuesFactory
- Rename Values to GlobalValues
- Add a GetoptValues class with error tracking on it
- Add a Context::$argv property
- Add back the Context::getopt() method; instead of it modifying the Context,
  it returns a GetoptValues object
add GetoptValues class
add getInput() method
errors are now an array of exceptions, and done with moving getopt back into Context
update README with new Getopt stuff