opencl-c-base.h always defines 5 particular feature macros for
SPIR-V, making it impossible to disable those features.
To allow disabling any of those features, let the header recognize
__undef_<feature> macros. The user can then pass the
-D__undef_<feature> flag on the command line to disable a specific
feature. The __undef macro could potentially also be set from
-cl-ext=-feature, but for now only change the header and only
provide __undef macros for the 5 features that are always enabled in
opencl-c-base.h.
This is an alternative to https://reviews.llvm.org/D137652