Split shadow and transparency ray types.

This is required to be able to have opaque objects cast transparent shadows for example.
Previously it was not possible as both transparency and shadows used the shadow ray type.