Reorganize into subdirectories

And rename "codegen" to "schemac"
Improve empty schema handling

Didn't handle empty schemas with titles, or empty schemas as definitions.