Allow user-defined aliases for cookiecutters

Originally, I did. But ```.format()``` is pretty powerful, and can easily result in errors - try including ```{1}``` (```IndexError```) or ```{foo}``` (```KeyError```) or ```{0.bar}``` (```AttributeError```). Adding padding characters or things like that can also give odd results.

Trying to trap all possible user errors seemed too hard, and I didn't like the idea of letting the user see the raw errors from ```.format()```. But using ```{0}``` when we're not supporting the full capabilities of ```.format()``` is definitely misleading.

What's your view? Am I being too cautious, and should we just fail on errors? Should we use ```replace``` with a better placeholder string? Should we use something else, maybe```string.Template``` (which might be a better fit here, but we'd need to agree on a name for "the bit after the colon" in ```gh:pfmoore/foo-template```). So many templating systems to choose from...