rebase and fixup #688 from @to3i: elementwise max

I punted on generalizing the gradient checker's `kink` to be a non-unary function, and instead just reduced the `stepsize` so that the probability of max element <= 2nd max element + stepsize is low (in fact it should technically be 0 since I also added the RNG seed).