Add tests for FakeGpioPin, and fix a bug they revealed.

clear() was actually setting the value to HIGH, rather than LOW as
expected.
Add a null GPIO pin implementation that does absolutely nothing.

This implementation is intended to be used as a placeholder when a driver
requires a GPIO pin that won't actually be used in a particular
application. With the optimizer enabled, the use of this should get
optimized away completely in many cases.