Converted partition functions from tasks to iterators

* Renamed integer_partitions -> partitions (multiple dispatch!)
* Added partitions(n) variant to generate all integer partitions
* Added npartitions, nsetpartitions functions
* Updated docs
Fix SetPartitions type parameter
Also speed up SetPartitions iteration
Merge pull request #4055 from JuliaLang/kms/partitions

Converted partition functions from tasks to iterators