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. ;(
No, the original slice should be intact as `slice_shift_byte` will consume no characters when there is no match.