Implementation of Collection Versions of Zip

My main line of reasoning here was to provide an alternative shorthand for creating a default value for when Zip2Collection is Optional:

let xs: Zip2Collection<[Int], [Int]> = nil ?? [(42, 42)]

Or empty:

let xs = { $0.isEmpty ? [(42, 42)] : $0 }(zip([Int](), [Int]()))