add buffer-size parameter

add option to set a fixed buffer size instead of doing gyrations based
on thread-concurrency
also, change the calculation for maximum buffer size to be based on the
number of threads