handle CaseInsensitiveDict with convert_to_dict

The convert_to_dict function walks a tree of dictionaries and converts
everything with an "items" attribute into a regular dictionary. This is
able to pick up on embedded CaseInsensitiveDict instances.

Also, this includes tests of convert_to_dict to confirm that it's
working.

really fixes #3