Code Cleanup in Utility.cs

Some general code cleanup in Utility.cs:

* Remove unnecessary overload of `Utility.Assert()`
* Avoid possible cases of multiple enumerations of `IEnumerable` collections
* Other small fixes