By default llvm::Sequence will happily iterate over enums, this patch forces the user to declare the enum iterable before being able to do so.
This emerged from a discussion with kuhar@ about reusing llvm's Sequence in lieu of https://github.com/GPUOpen-Drivers/llpc/blob/dev/lgc/interface/lgc/EnumIterator.h.
This patch is to discuss the design points (guard against enum iteration, provide tighter bounds, etc...).
clang-tidy: warning: invalid case style for class 'is_iterable_enum' [readability-identifier-naming]
not useful