Add setEncoder fn, fix bugs in Motor.h
All external programs should only set the encoder value using motorSetEncoder, as that always makes sure to reset the real encoder and the desired encoder value.
Rewrite limitDesiredPowerToEnc, fix minor bugs