Improve path building

This CL changes certificate path building from building the first
possible chain only to building all possible chains until a valid chain
is found or all potential chains are exhausted. This will allow us to
more gracefully handle CA and intermediate changes.

This CL does _not_ change the verification step in any way, all chains
generated are still verified the same as they were before.

(cherry-picked from commit 381c900af12815e6f0c01519d8ebdd57297303e9)
Change-Id: Ia8c4cd4131eb6ddf299da144b963a24cd1b64605
3 files changed