Handle matrix definitions with lists in them.
Remove dead code.
Send welcome email when user has email address.
Ignore invalid Slack targets.

These can be caused by credentials encrypted with a wrong key or
just by someone specifying the wrong format.
Enable HipChat notifications on pull requests.

Defaults to sending, but can be disabled with the on_pull_requests
option.
Merge pull request #362 from travis-ci/mm-handle-matrix-as-array

Handle matrix definitions with lists in them.
Add a fallback to the Slack messages.

As per their docs, this fallback will be shown to clients using
simpler protocols, like XMPP or IRC.

See the "Adding Attachments to Incoming Webhooks" box at
https://my.slack.com/services/new/incoming-webhook
Set context attribute for GitHub status updates.

Fixes travis-ci/travis-ci#2133.

See https://developer.github.com/changes/2014-03-27-combined-status-api/ for more details.
Add custom header for status updates.

It's required to set the new context status attribute.
Only send the beta accept header.
Fix syntax error.
Check only required jobs in Build::Matrix#matrix_finished?

`allow_failure` jobs should not influence the matrix's finished
status
Eradicate Job::Test#waiting_for_result?

Remove the confusingly named Job::Test#waiting_for_result?.
The method was returning the opposite of what the method name implied.
Removing this from Build::Matrix#matrix_finished? on the master
trips one spec that shouldn't.

https://github.com/travis-ci/travis-core/blob/dbb57d05dc1132512e93f1e789109b8bad9c56a0/spec/travis/model/build/matrix_spec.rb#L49-L57

This leads me to believe that filtering that the previous commit
introduced might already be covered by the existing spec.
Pass entire matrix to InvalidMatrixStateException

This allows us to inspect status of all jobs
Memoize required_jobs

Each job's allow_failure? value should not change during the build,
so might as well memoize this.
Merge pull request #371 from travis-ci/ha-bug-invalid_matrix_state_exception

Clean up matrix state check when the build matrix contains allowed failures
Add Repository::Settings::Collection and Repository::Settings::Model

This is a first stab at structuring settings API. Model and Collection
will be used in Settings to save and load data for given type (like
ssh_keys or notifications). This will allow us to keep the clean API on
top of settings without tieing us closely with underlying
representation.
Allow to pass key and use_prefix as options to EncryptedColumn
Improvements to models and collections for settings

This commit adds encryption and vaildation to models. It also gives
ability to register collections on settings, so they can be serialized
into JSON before saving settings.
Extract common behavior to OverwritableMethodDefinitions module