halign adjust with immutability of style objects in mind

Fixes problems mentioned here: https://github.com/mapnik/mapnik/pull/2426#issuecomment-58771864

I have no clue now. Maybe `width = glyphs_width + space_count * character_spacing` but that would probably need to somehow cache the result value.