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.

This is per the discussion in #215.  Please let me know if there's anything else that needs to be fixed before you'll accept the PR.