Adds thread quantity specification with the --threads flag

Threads must be between 1 and std::thread::hardware_concurrency(). Below 1 will exit with error, above hardware_concurrency will be silently reduced to the number of available processors.

Completes #42