Pin fixes

Here I add various checks to fix the leaking pins noted by @adamgreen. While this eliminates the leaking memory, the more sinister issue of the `StepperMotors` of `Robot` and `Extruder` not being notified of the changed pins.

I'm not certain how to approach this problem, although i can't help but thinking that it is the `StepperMotor` itself that should responsible for this configuration, not its owner. One approach would be for, e.g., `Robot` to pass the checksum of "robot" to `StepperMotor`, at which point `StepperMotor` grab the appropriate pins with its own `on_config_reload` handler. The only issue I can see here is that `StepperMotor`'s constructor has no way to construct a working `StepperMotor` object until the `on_config_reload` event comes along. This means there would need to be lots of `NULL` checks scattered about.

@arthurwolf, thoughts?