Some old changes

- Finished off the iterative approach to factorials to allow for zero factorial
- Shifted code out of catch block for clarity and less smelliness
- Created recursive factorial method