Filtration of types by role will now return None if the contents of the type are wiped out.
First implementation of `apply_shape` is now complete.  This implementation is similar to the one that existed in a former version of Schematics.  The idea is to allow many kinds of serializations to be performed by parameterizing a single loop, which is implemented as `apply_shape`.

The `serialize` function has been converted.  The flatten function will probably come next.