st: Generate shadows from the silhouette of the source texture
As first mentioned in commit 67217109, the CSS spec defines shadow colors independently from the colors casting the shadow. It's not a physical light simulation so a shadow is allowed to be a different color from texture casting it.
This means we only care about the shape of the source where alpha values of zero are adjacent to alpha values of non-zero. And all such non-zero pixels should be treated as fully opaque for the purpose of shadow generation. While this would be wrong for a physical light simulation it does allow us to cast shadows around semi-translucent shapes and better support CSS.