enforce contents of (attribute type)

Yes, we can declare the type of the `type' slot to be one of the symbols
:CDATA, :ENTITY, :ID, :IMPLIED, :NOTATION, and :TOKEN, but that doesn't
force an error all the time if something else is given.

The printer croaks if we give it a string, so instead of having the
reader turn strings into symbols, which may not always be how attributes
get made, use and around method on `initialize-instance'.
like the previous commit, but neater and it actually works!
store conformingness in document object

That way, when we go to print it back out, we can write the 'C' command
to let the next parser not get choked up, and if we use it directly, we
can tell if the data conforms to our worldview.
sample ESIS file

A fair sampling of the various data we support (or plan to support).