Fix adopting a video element with controls
    
This CL moves the creation of video controls from
HTMLMediaElement::prepareForLoad() to HTMLMediaElement::loadInternal().
This is needed because Blink forbids synchonous dispatch of events within
Node::appendChild() but creating the controls causes events to be
dispatched synchronously, hence causing a crash if the controls are
created within appendChild().
    
appendChild() calls prepareForLoad() synchronously, but calls loadInternal()
asynchronously.
    
This CL also adds a new layout test testing appending video elements with
controls.
    
BUG=414373

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

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