Improve computation of cache key from project schema - build a `HashCode` iteratively instead of assembling a potentially huge string - make sure the hash code distinguishes among extensions, conventions, tasks and container elements by inserting a separator (the set size) between each one of them