Bug: with a user defined argument type, an error displays
the whole function code, rather than just its name.

Modify the ArgumentParser._getValue() error message generator to test
whether action.type is a string (registered type).  If not, it is a
function.  Try to deduce its name (type.name), or type.displayName (a
user defined name).  If there is no name (an anonymous function), include
the original error message in the displayed error.

test/user_defined_type.js - mocha tests for action.type, including several
user defined cases.  Some are taken from test_argparse.py, some focus on
the bug discussed here.

In the Python, all functions have a .__name__, which it uses in the error
message.  For lambda functions that name is just <lambda>
Merge pull request #45 from hpaulj/user_type

Bug in user defined argument type error message