Honor rotation of parts

Switch up how we draw things a little bit, use canvas
transformations to make things easier
Add mouse pan & zoom, refactor part selection

Also some render refactors