Adds WithBarrel trait

Closes #6249.

Works like WithVoxelBarrel, just for SHPs (and other image formats that might be supported in the future).