Provide the basic functionality for setting direction, turning on and
off, toggling, reading inputs, and enabling/disabling pullups.
This chip also provides pulldowns, so in the future I will also
implement pulldown control so we can detect shorts to 5V.