Teach TextEncoding to avoid bloatedCharacters()

This CL teaches the TextEncoding and TextCodec system about narrow characters.
Instead of passing a UChar* into encode(), we now pass a String, which lets
TextEncoding use LChars when appropriate. The LChar path can skip some of the
more complicated encoding work, but in this CL, I've only skipped the NFC
normalization and left futher optimizations to future CLs.

This CL removes a number of calls to bloatedCharacters(). The one disadvantage
of this CL is that we can end up copying an LChar array into a UChar array when
using the ICU text codec. However, I just removed a memcpy from this codepath
in http://src.chromium.org/viewvc/blink?view=revision&revision=153465 so the
net effect is the same.

R=eseidel
BUG=254708

Review URL: https://chromiumcodereview.appspot.com/18605002

git-svn-id: svn://svn.chromium.org/blink/trunk@153481 bbb929c8-8fbe-4397-9dbb-9b2b20218538
gardening: marked a bunch of tests as SLOW

TBR=crogers
BUG=

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153482 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix a crash in Range::processContents().

This crash can be initiated by calling Range.detach() while deleteContents()
is processing the same range. Range::processContents() should save the state
of the range since mutation observers can change the state of the range.

This change affects one existing test (rtl-delete-within-line-crash.html)
that was apparently generated by fuzzers. Though it's hard to understand
the correct behavior of this test, the goal of this test seems to be
"no crash", and actually it does not crash with this change applied.
The new baseline is included in this change list.

A new layout test is added to test the scenario that causes the actual crash.
Interestingly, this test does not work on Windows trybots (crash on debug bots,
timeout on release bots), but does work on local Windows workstation. I used
a whole day to research this issue, but I got no clue about what's happening
on the bots. I have updated TestExpectations for the time being, hoping that
the main builders give me better idea about this.

BUG=112427
R=arv@chromium.org

Review URL: https://chromiumcodereview.appspot.com/18329003

git-svn-id: svn://svn.chromium.org/blink/trunk@153483 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Include disabled stylesheets in document.styleSheets.

Stylesheets disabled through LinkStyle.disabled were not included in
Document.styleSheets, even if they existed as CSSStyleSheet objects.

Fixed LinkStyle::setDisabled so it propagates disabled state to the sheet
object when present.

According to the HTML5 spec, setting disabled on LinkStyle when the sheet is
not present should not have any effect and getting it should return false. I
did not dare to do any changes there in this CL.

BUG=88310

Review URL: https://chromiumcodereview.appspot.com/17827004

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