Support non-ascii character commits/tags 

The sha1 hash does not support computation from `unicode` objects with non-ascii characters. This patch ensure that the setters of git objects never set attributes as `unicode`, but instead as
`string`.

Here is a snippet to reproduce the issue:

```python
from dulwich.repo import Repo
import tempfile


repo_dir = tempfile.mkdtemp()
repo = Repo.init(repo_dir)
unicode_string_with_ascii_only = u'Bjoern'
unicode_string_with_non_ascii_character = u'Bj\xf6rn'

index = repo.open_index()
repo.do_commit('happy ascii commit',
    committer=unicode_string_with_ascii_only,
    encoding="UTF-8")
repo.do_commit('reproduce unicode bug',
    committer=unicode_string_with_non_ascii_character,
    encoding="UTF-8")
```