Add option to override default tag string parsing

To provide some flexibility in parsing tag strings and creating tag
strings from a list of tags, users can now provide their own functions
for performing these operations.  Fixes #215.