CaseIterable synthesized conformance should let me override the collection type

You know, we probably should allow it. (And I'm not sure the auto-derivation even contemplates this possibility right now; the error we're producing—"protocol 'CaseIterable' is broken; cannot derive conformance for type 'Foo'"—is meant to indicate that the standard library's definition of CaseIterable doesn't look the way the compiler expects it to.)

I'm not sure if this needs an evolution proposal; it might be small enough to be considered a bug fix.