Part 2.3: Is policy list subsumed under subsuming policy?

This is part of an experimental feature Embedding-CSP.

This patch considers schemes when finding an `effective`
vector of CSPSources.

Previously, we handled scheme to host and
host to host source expressions.

This CL considers specifically scheme to scheme source
expressions.

Example 1:
A: http:
B: http://example.com

Then the resulting intersaction should be B.

Example 2:
A: https: http://example.com
B: http://example.com http:

Then the result should be `http://example.com https:`,
i.e. the former should not be upgraded to "https"

Moreover, we should also NOT stop when we find a match.

Example 3:
A: https://example.com http://example.com/foo
B: http://example.com/foo https://example.com

If we stop based on first match, we would get:
`https://example.com/foo http://example.com/foo`
However, the correct result should be:
`https://example.com http://example.com/foo`
since the order of CSPSources should not matter.

BUG=647588

Review-Url: https://codereview.chromium.org/2487983003
Cr-Commit-Position: refs/heads/master@{#434477}
6 files changed