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?`