Add feature flip for template selection

Drop 'dist' and 'group' keys from config if :template_selection
feature is not enabled.

This corresponds to worker PR
https://github.com/travis-ci/travis-worker/pull/97.
Merge pull request #390 from travis-ci/ha-feature-template-selection

Add feature flip for template selection
do not allow timeout values to equal 0, allow nil values
Add dist_group_expansion feature

When this feature is active, we expand 'dist' and 'group'
as build matrix dimension.
Merge pull request #391 from travis-ci/ha-feature-dist-group-expansion

Add dist_group_expansion feature
use travis-support/master-2014-10-06
use micro_migrations
allow setting acceptable repos to both private and public
add auth.target_origin to Travis.config
allow setting pusher schema, host and port
move GH.set to Github.setup and add api_url and ssl from config, merge global ssl options into github ssl options
use GH.full_path for constructing the config_url
extract source_host from repository.url
use private urls for custom source endpoints
don't puts, use Travis.logger
configure metrics reporter, defaults to logger, use Metrics.meter
use instrumentation_key for instrumenting methods
add thread id to log header format by default
pass through a given block in RedisPool#method_missing
publish instrumentation events to redis "events" for now, got issues with pattern matching?