Better error messages when run outside of a git repository

- [ ] @kevgo 
- [ ] @charlierudolph

* reorganized the *configuration.sh*
  * moved helper functions into *configuration_helper.sh* so that *configuration.sh* is cleaner. It was difficult to see the logic being performed here
* if a Git Town command is being performed, show "This is not a git repository" where it makes sense (`git town`, `git town help`, and `git town version` should always work)
I think you can merge both scenario outlines. They have the exact same title, and the second one seems a superset of the first one.