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