Collapsed space never worked properly if we have spaces inside and/or after a Bidi-isolate.
The problem happens in two parts of the code:

1. The midpointState is not updated properly in addFakeRunIfNecessary. So when 
an isolated run is added the next midpoint state is wrong.
2. Since isolated runs have a two pass algorithm. In the second pass the 
midpoint state is wrong.

This patches fixes the first problem implementing a method called 
adjustMidpointsAndAppendRunsForObjectIfNeeded, when a fake run is added it basically 
updates the midpointState properly. And the second problem is fixed
saving and restoring the midpointState for Bidi-isolate inlines.

Additionally, with the recent modifications, the fake run needs to have width
zero because constructBidiRunsForSegment not necessary will replace the fake
run with a valid run.

BUG=304701

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=159203

Review URL: https://codereview.chromium.org/26315003

git-svn-id: svn://svn.chromium.org/blink/trunk@160400 bbb929c8-8fbe-4397-9dbb-9b2b20218538