Add string dshape support

This adds support for parsing the string dshape parsing.

I've put some of the build_ds functionality in the PLY semantic actions, in particular for the appl_args rule. I think this makes it easier to see what's going on in how the datashape objects are constructed, do you think putting all of build_ds in the semantic actions is reasonable?