cmPropertyMap: Use std::unordered_map

Merged Sebastian Holtermann requested to merge sebholt/cmake:cmPropertyMap_unordered_map into master

In cmPropertyMap``std::unordered_map is used as the mapping container instead of std::map to get constant time value lookups and possible speed improvements.

Also std::string is used instead of cmProperty as the value container and the value interface of cmProperty is removed.

Merge request reports