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. ;(
This could be

```rust
match *a {
    [c, .. rest] => { *a = rest; Some(c) }
    _ => None
}
```

(It might need `let tmp = *a; match tmp { ...`, I'm not sure.)