Streamline character width remeasurement to hopefully avoid exceptions

Previously, I was just remeasuring characters whenever the stylesheets changed. I think there were situations in which the model changed, then I remeasured characters prior to updating the view to match the model, causing DOM exceptions. This switches the approach to only ever measure characters after an update, ensuring the view always matches the model.