vastly deduplicate shader creation code

slightly improve error handling

resolve several minor TODOs

remove outdated TODO comments

add more vector arithmetic functions

improve snap-to-grid-movement

snap the movement to the grid

(0) -100 -30 -10 -7 +7 +10 +30 tip

mercurial