refactor converters

In preparation for adding new definition and value sources (argparse, python modules, ...) I've refactored the converters.  They're now sorted into to types: to string and from string.  Both types now have dispatch functions that will relieve clients of this module from having to find the appropriate converter manually.
I don't trust these to-string operators. And what if they contain a `"` character?
Can we not just use 
```
'on conversion of %r with value %r from %r '
```
instead?