fmt: updated tables for charwidth

There was a subtle bug in the charwidth table generation that I fixed. This is the same version that I've put in the [upstream pull request](https://github.com/rust-lang/rust/pull/15283), but unless and until that lands it'd be useful to have correct functionality here.

(There may be some delay landing upstream because we might end up breaking out a lot of the unicode functionality from libcore to libunicode, and I haven't quite figured out the right way to get that done yet.)