apply file permissions from input file to output file
fix octal values as Python 3 does not support something like 0777 anymore (needs to be written as 0o777)
first attempt to fix umask on travis to make permission tests pass there too
second attempt to make permission tests pass on travis too

by comparing original file permissions to generated file permissions (without hard-coding original permissions in test case)
Test triple-nested binary file, to ensure that nested binary files still copy over correctly (#41).
Add docstrings to document generate_file's precondition and params. Fix other docstrings in generate too.
Fix test failure in test_main.TestCookiecutterRepoArg.test_cookiecutter_git.

For some unknown reason, test_main.TestCookiecutterRepoArg.test_cookiecutter_git
started failing on my system for Python 2.6 & 3.3 (both in tox and in isolated
2.6 & 3.3 virtualenvs). I believe this test failure was completely unrelated to
@benjixx's file permissions changes.

This commit is a bit hackish, so I added detailed explanations inline. If anyone
happens to have any insight about why this might have started happening or how
to improve this, I am interested.
Add docstring, comments to file permissions test, since working with file permissions in Python is generally confusing.