use numpy test benchmarking framework

Mostly I had to conform to the function and class naming scheme and call
numpy.testing.Tester().bench()
add grouping scheme for functions of similar type

I put them in a class BenchSmoothUnbounded()
print the number of dimensions