This paves the way for updates to filter and layout properties to trigger a source reload, without each SDK having to participate in the implementation.
* Layer source ID is immutable; must be provided to the constructor
* Layer source layer is mutable
* Layers with GeoJSON sources do not have a source layer
While here, make Layer::copy impl-private.