Image types were previously available, but not working. This patch
adds handling for OpenCL builtin functions.
Rename the image type definitions in the .td file to make them
consistent with other type names. Use abstract types to represent the
unqualified types. Instantiate access-qualified image types at the
point of use using e.g. ImageType<Image2d, "RO">.
Add/update some TableGen definitions that use image types.
Btw do we always need to set all the inherited fields in each subclass in the same way?
For example VecWidth should be set to 0 in image types?