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)