Утилита для генерации ширин символов в пикселях

Рассчет происходит для конкретного шрифта.

Шрифт задается в классе .render внутри letterwidth.html. Для лучшей точности используется
хак с увеличением шрифта в 10 раз (соответственно результат потом делится на 10, 
задается константой FONT_COEF) 

Открываем letterwidth.html в браузере и ждем когда отработает скрипт (работает долго).
Когда доработает - всплывает алерт done! и мы видим таблицу ширин символов в пикселях.
Поскольку берется некая усредненная ширина символа, то это число с плавающей точкой.

Полученную таблицу копируем в какой-нибудь файл (например, pixellen.inc), который потом подключаем так:

static const float PIX_LENGTH[] = {
#include "pixellen.inc"
}

Ширина символа получается по порядковому номеру символа. В таблице - первые 65536 символов Unicode.
Например, посчитать ширину строки в пикселях:

float pixlen = 0;
TUtf16String str = u"some string";
for (TUtf16String::const_iterator it = str.begin(); it != str.end(); ++it) {
    pixlen += PIX_LENGTH[*it];
}

Вкомпилировать массив float-ов может оказаться слишком толсто, поэтому можно конвертировать в ui16. 
Для этого есть скрипт pixel-width.py, который конвертирует таблицу float-ов в 
таблицу ui16 простым домножением на PIXEL_FP_PRECISION [= 200]
После этого массив данных с ширинами символов занимает в бинаре в 2 раза меньше места, а подсчет ширины
текста в пикселях выглядит так же, только итоговую сумму надо разделить на PIXEL_FP_PRECISION.
