Make schemac understand optionality

This doesn't extend to support for the "required" schema property yet.
It's just enough to fix the representation of arrays of objects (which
should be an array of structs, not an array of pointers to structs).