fix build w/o CONFIG_MCP2210_DEBUG

I appear to have broken this in one of my cleanup-reformatting commits
earlier. This keeps dump_* functions calls non-existent w/o
CONFIG_MCP2210_DEBUG_VERBOSE.
minor whitespace cleanup and re-add a needed BUG()
remove unused kill field
Add polling and fix bug in URB failure handler

This adds polling of gpio values and the dedicated interrupt counter
pin.  We employ a timer so that we are free from latencies that can be
introduced in the sleepy context of the work queue, as well as those
caused by using the global work queue, where other work may be queued
ahead of us.  We're still using the global work queue for the
delayed_work, but the scope of it's functionality has been reduced and
it's execution interval increased to 4 seconds.

So now the timer will fire and we can submit our URBs for querying the
gpio values and interrupt count from within a softirq context where we
can't be preempted and delayed.

Further, I dicsocvered a bug in handling of failed URBs.  Previously,
when an URB failed with EIO (for example), the error handler mistakenly
marked the entire command as being dead when there was still an URB that
was outstanding.

This change leaves a number of things sort-of krufty and we'll need to
revisit a lot of process_commands, do_delayed_work and such, remove
implementation code for cases that no longer exist and do another
general cleanup.  Also, a few functions that were using a lot of gotos
and have grown are now spaghetti-like and need cleanup, possibly
splitting some of them out.

This change set also leave the following out of date and/or incomplete:
* Theory of operation in mcp2210-core.c
* dump_ functions where structs have changed
* creek encoding (missing new gpio & interrupt polling settings)