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)
```
# Persists the given git-town configuration setting.
#
# The configuration setting is provided as a name-value pair.
# The provided configuration becomes available for the current session.