Turn on -Wall -Werror compiler options.

This CL will make the build to emit most of the known to the compiler warnings and will treat them as errors.

Surprisingly, the code base is pretty clean. There's just a single (false) warning about the unused _set_motor_power_level function, but it's only unused on AVR and used on ARM. Since the implementation of this function was already guarded by #ifdef __ARM, I moved the whole function there and now the build is free from any warnings (at least, from the avr-gcc point of view).

This CL is optional. It does not contribute to the functionality, but reduces a chance to make a mistake and leave it unnoticed.