Total number of Allocs and AllocedBytes retrieved from
runtime.Memstats() were not being divided by the number of completed
operations during the benchmark run, to get the correct number of
Allocs/op and Bytes/op.
* A few more improvements to the benchmark code.
* In benchmain/main.go:
* Define types for function arguments to make code more readable
* Significantly simplify the code as a result of stats package refactor.
* In benchresult/main.go
* Simplify code as a result of stats package refactor.
* In stats/stats.go
* Define and expose featureIndex enum.
* Refactor the types used to store features, results, stats etc.
* Provide easy to use methods to add/modify/read/dump stats info.
* Delete stats/util.go - dead code.