Factor painting code out of RenderBox into a new class called BoxPainter.

Along the way, create BoxDecorationData and BorderEdge classes, to represent classes
that used to be internal to the RenderBox and subclass implementations. Also moves
a couple of methods to RenderStyle that use only style data.

This CL increases the size of RenderBox, RenderTable, Render TableCell and RenderFieldset objects by one pointer,
to accomodate a back pointer from the BoxPainter to the Render object.

BUG=412088

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

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