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.
Which if the lines above this is possibly causing an `AttributeError`? Is it the `conv.to_str`? Or, is it the `a_value_source.converter_service`? If so, it pains me eyes to see that the first part (`opt.value_source = conv.to_str(a_value_source)`) is allowed to succeed but the second one isn't. That there just doesn't feel right.