Add support for parsing the 'string' datashape as proposed

In doing so, I've moved some of the datashape construction
into the PLY semantic actions, in particular for the 'appl_args'
production rules. I think it might make sense to move all of
the build_ds functionality there, to make it easier for
people to see what's going on.