Added `character()` support for algorithmic names.

Partially addresses #2. The equivalent support for `name()` would need some changes to the API, since it needs to write to the user-supplied buffer. (Note that #1 equally needs this change, anyway.)

For your information, by the way, `urllib.request` is not in Python 2. ;(
Wouldn't `> 8` be avoiding overflow?