Oilpan: Move more code of RenderObject destructors to destroy().

Like [1] and [2]. We should do it in general.


This CL relands Blink r180046 [3] with some modifications.

- Move ImageQualityController::remove(this) from ~RenderBoxModelObject() to
  willBeDestroyed(), not to destroy() because RenderWidget doesn't call
  destroy() of its parent classes (RenderReplaced -> RenderBox ->
  RenderBoxModelObject). willBeDestroyed() of parent classes are correctly
  called.

- Add a test for the above issue as RenderPartTest.cpp
 It's not RenderWidgetTest.cpp because the RenderWidget constructor is private.
 Also, update ImageQualityController for ease of testing


[1] http://src.chromium.org/viewvc/blink?view=revision&revision=180023
[2] http://src.chromium.org/viewvc/blink?view=revision&revision=180029
[3] http://src.chromium.org/viewvc/blink?view=revision&revision=180046

BUG=398342

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

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