Store lineStyle's thickness as twips in coordinates

Turns out the thickness isn't rounded to the nearest pixel after all, but stored - and interpreted - in twips. Because the commands buffer is in bytes, the thickness is written into the coordinates instead. In some ways this is even less dirty than the previous solution. It wastes two bytes, but line styles aren't set that frequently, so this is fine.
Emit endFill/endLine commands at the end of a shape path

Otherwise, we'll happily continue playing back path commands for the last fill in the renderer while line paths are played back, and only apply the fill once all paths are complete.
Don't auto-close strokes

For fills, we have to manually draw a line connecting the first and the last coordinates of the path. For shapes, not so much.