Allows for multiple program address spaces to be defined through
multiple Px-Py... in the data layout.
If none is specified, the default program address space is 0.
Unless data layout is modified with multiple Px, this patch shouldn't
have any effect on current code.
I don't see why we need a list of program address spaces. The datalayout only needs to know the one to use for situations when generic code needs to synthesize a function out of thin air. Anything beyond that would need target information in the specific pass.