Forge rotation API support

Makes blocks update their heading when their rotate function is called (for example, when rotated by Remain in Motion's carriage rotator).
This conflicts with wrenches that rotate blocks, as they can no longer change the modes on the top of machines without rotating it