R600: Use address space enum instead of value
R600: Fix asserts related to constant initializers

This would assert if a constant address space was extern
and therefore didn't have an initializer. If the initializer
was undef, it would hit the unreachable unhandled initializer case.

An extern global should never really occur since we don't have
machine linking, but bugpoint likes to remove initializers.
Fix typo
R600: Add failing testcases.

These are reduced from assert in the
OpenCV CvtColor8u.BGR5652GRAY test.