Add is_valid_extent(), which should have been part of the merge in 58ff4718bd77f1fdd9376a77a2df24549e011ecc.
Port omniglot to new plugin API.

It imports, but it's otherwise untested.

Made some staticmethods with class names hard-coded into classmethods.

Make some associated organization tweaks to the plugin API: doc clarifications and moving convenience methods into separate sections so it's clear what you're expected to override.