Remove unused and obsolete Cached.cs

This was similar to Lazy<T>
Remove custom Stopwatch wrapper

Remove the redirection (that doesn't offer any new functionality)
and replace it with the familiar System.Diagnostics.Stopwatch.
Replace (and remove) custom Set<T> with HashSet<T>
Merge pull request #5197 from pavlos256/minor-cleanup

Minor cleanup