App.Run() now returns an error if there was one. No more calls to os.Exit()

closes #39 
This leaves a lot more flexibility in handling errors in cli. The package will no longer forcibly exit your application when there is an error or unexpected input.