Custom JSONEncoder argument

Added option to specify custom JSONEncoder argument in the decorator.  If one is specified, it is used for encoding, otherwise the default dumps() is used.  Added a set of test cases that exhibit this functionality.