Added factorial, permutation/combination, catalan numbers and derangement functions