Properly maintain newlines at end of files

Currently cookiecutter has a major bug: all newlines at the ends of files are stripped.  This bug makes tools like pep8 and flake8 angry.

There are already two other pull requests that attempt to fix this bug: #79 and #135.  Here are the problems with the existing pull requests:

- Pull request #79 introduces a new bug by *always* adding newlines to the ends of files.
- Pull request #135 requires that users of cookiecutter decide whether newlines should be maintained.

This pull request causes cookiecutter to:

- Generate files with final newline(s) when the source files had newline(s)
- Generate files without final newline(s) when the source files did not have final newline(s)

This is technically a backwards-incompatible change because it fixes a bug in functionality.  I doubt existing users will be disappointed by this new behavior because files that are not expected to have final newlines probably already lack final newlines in the source template.
Not 100% sure. It's using the builtin ```open()``` under Python 2, which will (I think) give a byte string. (Python 2 Unicode handling makes my head hurt, and I'd have to test to be certain)

The *correct* fix is to change the code to

```python
        with io.open('inputpizzä/simple-with-newline.txt', 'r', encoding='utf-8') as f:
            simple_text = f..read()
        self.assertEqual(simple_text, u'I eat pizzä\n')
```

... I think. I'll be looking at this more closely when I start doing the encoding review. If you'd care to look at #269 (and the corresponding discussion on #249) which needs to go in before that can start, I'd appreciate it ;-)