JMS-34: App.Run() can now be run multiple times.

- Added a method for looking up commands
- Using some logic to make sure default flags are not added more than
  once