fix regression on handling wrong passed empty values and add specs

Hi,

first let me thank you for this awesome gem. It saved us quite a lot of work to provide a SOAP api for our customer.

As mentioned in #8 I'm affected by this bug again that causes strange values passed when the SOAP client sends empty string values. It looks like after the bug has been fixed another change broke the workarounds functionality again.

I've digged a bit into the source and found the place where the problem is caused (there is simply a wrong variable used - `key` instead of `k`). Therefore I created some specs to cover the issue (and had to change a few things in `WashOut::Dispatcher` to allow easier testing.

I've tested this change in my app that uses the gem by pointing to my fork in the gem spec and it works again as expected.

Cheers, Klaus