Fix an issue with non-dict values in flow exchange.

The OAuth2 for Devices implementation picked up an incidental change that
failed to treat dicts and dict-like objects the same way. This is particularly
painful in environments like App Engine, where `self.request.params` is a
common dict-like value to pass in.

This restores the previous behavior, and adds a test.
Version 1.3.2.