Ignore rather than die on bad metadata.

The CKAN client was always supposed to ignore bad metadata. Unfortunately, because our `BadMetadataKraken`s were gettng wrapped by our JSON library, we weren't. This means that old clients will get "connection failed" or other oddities when really it's bad metadata, that old clients fail, and generally that everything is much too fragile.

This change walks the exception stack when we have a problem with a file, and correctly handles wrapped exceptions. While we can't send this back in time to fix existing clients, we can stop new clients from barfing on bad metadata.

Check out 19e48db for a test case that shows the presence of this bug, and the whole branch to see the bug having been fixed.

This closes KSP-CKAN/CKAN-meta#182.