cache pikmin direction logic

normalize() is *slooooow*, so let’s only do that when we have to.