Improve the out-of-tree configuration
Finish fixing Kconfig
Bug fixes, +IRQs, re-work SPI & command processing

This is a rather large commit, so I'll break down the changes as I'm not
in the mood to split it into something more palatable.

* Fixed a nasty memory leak in SPI msg processing.
* Fixed a stupid overflow bug in timing calculation for SPI messages.
* Re-worked SPI message processing to correct some bugs, cleanup the
  general flow and correctly predict the time it will take for the
  device to be ready for more data so we don't have to beat the CPU and
  USB port to death.
* Fixed incorrect handleing of CS during multi-xfer messages.  By
  default, CS should be held through-out the msg (oops).
* Now honoring cs_change.
* Add initial support for managing 3wire and cs_gpio.
* Improved the polling and moved all related code to mcp2210-irq.c
* Add initial code to support producing virtual interrupts and passing
  an IRQ number to SPI devices (for consumption).
* Updatec creek encoding for all of these changes.
* Added a validate_board_config() function and removed all validation
  from creek_encode/_decode()
* Updated "config" unit test to match changes (and actually succeed when
  it should)
Update README.md and info on creek format
Fixes (and a few hacks) for good build w/ various config

So enabling or disabling options in the config, it should still build.