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.
Wow that was a ugly piece of code. All this `X.__name__ = 'DontCareAbout_%s' % to_str(value_type)` business made me a bit dizzy and made me feel dirty.