Multiple primvar support for OSLImage and OSLObject

Previously, the OSLImage and OSLObject nodes could only retrieve emission from the standard Ci shader output, and apply it to the RGB and P primitive variables respectively. This pull request implements reading and writing arbitrary primitive variables and image channels from OSL, making the OSL processing nodes much more powerful.