Update the backend to work with the modified push/pop text shadow int…
…erface. This allows multiple text runs to be combined in to one shadow, and fixes a few existing bugs encountered along the way. It doesn't (yet) support other items in the text shadow, but the structures are in place to make this easy to add.