Extra context: API + CLI

Fixes #12
Synthesizes parts of: #75, #100, #116, #161 and #199.
Thanks @fcurella, @aventurella, @emonty, @schacki, @ryanolson!
`cookiecutter.main.cookiecutter()` has a `parameters` argument, which is the `extra_context` argument you detail here. I submit that this should be renamed to the more consistent `extra_context` argument name.