add several more test optimization functions

update the benchmark framework to allow multiple starting points
add another benchmark function (Booth)