add author and committer in params of the commit function

Currently, when doing a commit with GitPython, it is based solely on the parameters defined in the environment variables GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL. 
It is very painful as a way of doing things. 

This Pull Request allow to make a commit through the function commit the index class. 

With this update, we can make a commit like that.

```python
repo = Repo('my/repo/')
index = repo.index
index.add['manifest.txt']
index.commit(msg.encode('utf-8'), 
              author=Actor('firm1', 'firm1@yahoo.fr'), 
              committer=Actor('firm2', 'firm2@yahoo.fr')
            )
```
When author or committer params aren't specified, the default value is variable environment.

Results are off course in the logs entry.
`config_reader` is now actually just the plain text name of the committer. It would be very confusing to leave that name.
Also it breaks the API due to the type change. Code must be added to check the type of the input and act accordingly.