edited line 85 from 'N/2.0' to 'N/1.5' ...1.5 works better -KL
heavily revised according to global rand_parts function -KL
heavily revised according to global rand_parts function -KL
heavily revised according to global rand_parts function -KL

reduced redundancy by combining functions. Now, the user calls only one function, i.e. rand_parts(Q,N,sample_size,which,zeros). Values of the arguments determine whether zero-valued parts are allowed and whether 'bottom-up' or 'divide_and_conquer' are used.
revised comments -KL
Merge remote-tracking branch 'upstream/master'