OSL ShadingEngine : Support cancellation at a per-point level
OSL ShadingEngine : Support cancellation at a per-point level

This makes the OSLObject and OSLImage nodes more responsive to cancellation requests. Testing with `gaffer stats -canceller` indicates that checking for cancellation at this fine granularity has negligible overhead.

Responsibility for calling `get_context()` and `release_context()` has been moved into the ThreadContext class in order to make our calls to `release_context()` exception-safe, since cancellation operates via exception.

lucienfostier/gaffer,johnhaddon/gaffer,hradec/gaffer,ImageEngine/gaffer,johnhaddon/gaffer,GafferHQ/gaffer,appleseedhq/gaffer,GafferHQ/gaffer,andrewkaufman/gaffer,hradec/gaffer,hradec/gaffer,ivanimanishi/gaffer,GafferHQ/gaffer,boberfly/gaffer,GafferHQ/gaffer,boberfly/gaffer,lucienfostier/gaffer,ivanimanishi/gaffer,ImageEngine/gaffer,appleseedhq/gaffer,johnhaddon/gaffer,lucienfostier/gaffer,hradec/gaffer,hradec/gaffer,andrewkaufman/gaffer,ImageEngine/gaffer,ImageEngine/gaffer,appleseedhq/gaffer,boberfly/gaffer,johnhaddon/gaffer,andrewkaufman/gaffer,GafferHQ/gaffer,lucienfostier/gaffer,ivanimanishi/gaffer,appleseedhq/gaffer,boberfly/gaffer,ivanimanishi/gaffer,andrewkaufman/gaffer,andrewkaufman/gaffer,johnhaddon/gaffer