jshint support

By adding jshint, this also detected an exception that would be
triggered if the random number generator generated the same random
number twice.
tabs to spaces
pmxdr-client.js is an imvujs module
lift into a factory to eliminate pmxdr as a singleton