scene: Decouple scene bits from Shadow class
Currently the Shadow class is scene specific, which adds coupling between Window and scene bits.
This change introduces ShadowTextureProvider that contains scene specific stuff so the Shadow acts like a data source and is not coupled to concrete scene.