* Handle partially-configured shields, i.e. passing 0 as the
  pin number for an analog or digital channel
* Refactor