Fix partition padding edge cases

Partition with a nil pad is actually different than partitionAll.
partition stops iterating and pads at the first partition less than n
partitionAll continues partitioning until it has reached the last step.