added permutation dist code from Sean
use linear alg to generate permutation
require dist types to end with -dist
update todo; fixed bugs
update todo
fix permutations contract (allow 0), add docs