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.
so that in the context of different "for_*" modules, we can have different converter functions registered under the same "converter_function_key".  In most cases, it is possible to generate the ```converter_function_key``` from the ```converter_function```, but that is not true in all cases: partials, lambdas, wrapped functions returned by other methods (like ```classes_in_namespaces_converter```).  In those cases, we could just call the ```convert_function_key``` "dwight" or "wilma".