made new() inherit from FilteredExpression to avoid duplicate code
fix unused import
unused import
another unused import
improved behavior of ExplainTypeError when cls.func_name is None
* added "englishenum" function to produce nice "english" enumerations

>>> englishenum(['a', 'b', 'c'])
'a, b, and c'

* fixed argspec to conform to its docstring
* fixed expand_wild docstring
polished FunctionExpr argument checking and update ExplainTypeError patterns accordingly

* exceptions raised/messages are now modelled after Python 3.4
* "argument(s)" is correctly pluralized
* detects duplicate values for an argument
* fixed too few args check (required args *can* be passed as kwargs)
work around numpy issue #4636 (float_valiue / np.int32(0) raises an error in numpy 1.8 instead of returning inf)