ExternalData: Add support for custom algorithm-to-URL mapping
ExternalData: Add support for custom algorithm-to-URL mapping

Allow URL templates to contain a %(algo:<key>) placeholder that is
replaced by mapping the canonical hash algorithm name through a map
defined by the <key>.

Extend the Module.ExternalData test to cover the behavior.
Extend the RunCMake.ExternalData test to cover error cases.

Change-Id: Iabbcb81de0253b4482bce65a0e32cc5c1e8a4816

sumedhasingla/VTK,jmerkow/VTK,sankhesh/VTK,sumedhasingla/VTK,gram526/VTK,sankhesh/VTK,keithroe/vtkoptix,sumedhasingla/VTK,gram526/VTK,sumedhasingla/VTK,keithroe/vtkoptix,gram526/VTK,sumedhasingla/VTK,candy7393/VTK,sumedhasingla/VTK,gram526/VTK,gram526/VTK,msmolens/VTK,gram526/VTK,candy7393/VTK,demarle/VTK,SimVascular/VTK,keithroe/vtkoptix,candy7393/VTK,demarle/VTK,sankhesh/VTK,candy7393/VTK,SimVascular/VTK,demarle/VTK,keithroe/vtkoptix,demarle/VTK,keithroe/vtkoptix,msmolens/VTK,candy7393/VTK,mspark93/VTK,gram526/VTK,jmerkow/VTK,mspark93/VTK,sankhesh/VTK,SimVascular/VTK,mspark93/VTK,jmerkow/VTK,demarle/VTK,keithroe/vtkoptix,jmerkow/VTK,mspark93/VTK,mspark93/VTK,msmolens/VTK,jmerkow/VTK,SimVascular/VTK,msmolens/VTK,SimVascular/VTK,sankhesh/VTK,candy7393/VTK,msmolens/VTK,msmolens/VTK,SimVascular/VTK,mspark93/VTK,sumedhasingla/VTK,jmerkow/VTK,msmolens/VTK,demarle/VTK,demarle/VTK,SimVascular/VTK,jmerkow/VTK,jmerkow/VTK,mspark93/VTK,keithroe/vtkoptix,sankhesh/VTK,SimVascular/VTK,msmolens/VTK,mspark93/VTK,candy7393/VTK,sankhesh/VTK,gram526/VTK,sankhesh/VTK,demarle/VTK,sumedhasingla/VTK,candy7393/VTK,keithroe/vtkoptix