Don't spew warnings for incorrectly-set last command in a shape path

Yes, this is a bug in shape parsing, but it's completely irrelevant, so spending the time to investigate it isn't worth it
Hoist isMorph check out of shape drawing loop
Merge pull request #877 from tschneidereit/master

Shape code cleanup and optimization