Support a new YAML format for template settings

This is the initial version of support for a YAML format settings file, to supersede ```cookiecutter.json```. Before committing, I would like to refactor this further, to make the "internal" format completely encapsulated in ```settings.py``` so that client code need have no knowledge of how the settings are stored. But the PR is sufficiently complete that it's ready for initial review.

At the moment, it's only the context data that is in the settings, so the refactoring won't actually impact much, but it establishes the principle that following changes should follow. The main change at this stage will be in the tests, which currently know far too much about how the settings/context is stored.
It's not obvious that a method called `get_settings` would also be responsible for merging context.
I would suggest moving the rest of this method to the calling code in `cookiecutter.main`