Extra context: API + CLI

Fixes #12
Synthesizes parts of: #75, #100, #116, #161 and #199.
Thanks @fcurella, @aventurella, @emonty, @schacki, @ryanolson!
We should include a sample file of what can be done with `extra_context`. For example:

``` python
""" baked_timestamp.py is a utility script for cookiecutter that adds a timestamp. """
from cookiecutter.main import cookiecutter

from datetime import datetime

def timestamp():
    return datetime.utcnow().isoformat()

cookiecutter("cookiecutter-django", parameters={"timestamp": timestampdatetime.utcnow().isoformat()})
```

if necessary, this could be made it's own pull request once #260 is accepted.