Deferred execution semantics for GetMatches

Lazy version `Glob.GetMatches` with deferred execution semantics via iterators; helps with LINQ chaining so results don't need to be computed more than necessary.