Update CKAN schema and spec, and more stringient validation.

This puts verything more in-line with the Debian spec, and
does extra testing on the CKAN files, and documents a number
of things a lot letter.

This *will* cause some of the meta-CKAN files to start failing
their CI tests. That's because they don't follow the new spec,
and in some cases, didn't actually follow the old spec. We
want code that doesn't validate to be obvious. :)