First implementation of repository settings
Allow to actually save settings on repository object
Add find_repo_settings service
Make authorized method public on FindRepoSettings
Add better support for defaults for Repository::Settings

Defaults are set in a redis field and are overwritten by saved settings.
Add Repository::Settings#get for fetching a path
Add first option to repository settings: builds_only_with_travis_yml

Setting it to true will reject any build, which does not contain
.travis.yml file.
Rescue Redis::BaseError, not StandardError in retry
Fix Settings.defaults to work correctly when an empty string is fetched from redis
Keep defaults in the code
Add settings for building pushes and pull requests
New repo settings option: build PRs on synchronize

When new commit is pushed to a target branch, github sends us
synchronize event. We haven't tested this commit, unless head was
changed, but it is a valid use case - when master changes, PR may no
longer pass, so it's good to retest it.

This commit allows to enable such a behavior by changing a
`builds.build_pull_requests_on_synchronize?`
Revert "New repo settings option: build PRs on synchronize"

This reverts commit 3167e8a9c182439365b2e31b92c9e70aebd53a55.
Don't namespace basic options like build_pushes etc.
Don't raise error when current_user is not available in find_repo_settings service
Return nil from find_repo_settings service if repo can't be find