Callbacks that return str

This should resolve #42

The only thing that I think is a little iffy here is that strings must be returned as references.  It is iffy because we don't require references to strings anywhere else (that I am aware of).  However, I think with appropriate documentation the usefulness of being able to return a string from a callback compensates its strangeness.

If strongly apposed to that then I can do a PR with just the pointer support.