Add the ability to treat some module-level globals as non-constant
Add the ability to treat some module-level globals as non-constant

This will be used for the CUDA target - for example, cuda.threadIdx is
not a constant, but varies across threads.

This provides a mechanism for target contexts to list the module-level
globals that should not be lowered as constants.

gmarkall/numba,seibert/numba,IntelLabs/numba,sklam/numba,cpcloud/numba,stuartarchibald/numba,seibert/numba,stuartarchibald/numba,gmarkall/numba,stonebig/numba,sklam/numba,cpcloud/numba,stuartarchibald/numba,gmarkall/numba,stonebig/numba,sklam/numba,seibert/numba,stuartarchibald/numba,seibert/numba,IntelLabs/numba,sklam/numba,numba/numba,numba/numba,stonebig/numba,IntelLabs/numba,numba/numba,IntelLabs/numba,stonebig/numba,cpcloud/numba,numba/numba,gmarkall/numba,gmarkall/numba,IntelLabs/numba,numba/numba,stuartarchibald/numba,stonebig/numba,sklam/numba,cpcloud/numba,seibert/numba,cpcloud/numba