Update Kconfig

This project is still built as an out-of-tree module, but will need a
good working KConfig eventually be submitted for inclusion, so I've now
actually tested this Kconfig (inserted into Device Drivers -> mfd) and
it works and is almost complete.
Update creek en/de-coding for polling config

Now correctly encodes & decodes the newly added polling settings. Added
debug messages to aid in further maintenance.
userland util: Add en/decode and update unit tests

* Adds a clean mechanism to encode and decode a creek configuration.
* Unit tests are updated and once again succeeding!
* Update README.md to reflect usage of util for configuration.
Update dump_ functions

dump_state, dump_board_config, dump_cmd_head, dump_ctl_msg
move msg_validate_size & jiffdiff to header file

mcp2210-core.c is getting pretty large so this gives us 50-odd lines
back and makes msg_validate_size available to userspace as well.
Fix bug in command polling that can lead to UB
Fix potential race condition in mcp2210_disconnect, add info msgs
Major re-work & correct flaw in command processing, docs

Partial re-write of command processing that corrects a nasty little
flaw. Previously, delayed commands could keep other commands from
running.  This new mechanism will ensure that commands will run in the
order they are queued with delayed commands being moved to another list
if they aren't due when popped off of the queue head and moved back to
the queue head when they are ready for execution.  This keeps command
execution order sane and still allows for all of the variants to still
work (SPI commands that need delay between URB transmission and the
configure command needing to run in a sleep-able context).

Expands documentation in Theory of Operation section and updates it so
that it now unambiguously specifies the behavior of command processing.