Whitespace cleanup
Refactor duplicated code creating files
Refactor duplicated code determining filename
Handle patches with Index lines
fullname option to avoid duplicate output files

In larger projects it is likely there are many directories containing
common files (Makefiles, etc). The new fullname option uses the full
path of the patch to name the output file to avoid many similarly named
output patches.
Merge pull request #3 from doctaweeks/master

Refactoring common code and handling patches with Index lines