[#58] Improve Command Line Argument Handling

* Fixes #58 
* Use OptionParser to protect against unknown arguments
* Add handling for -h and --help arguments
* Handle generating an app to the current directory
* Pull generation code into a class