WebAudio: Fix AudioBuffer.duration attribute type and return correct value

The WebAudio spec says the AudioBuffer duration is a double not a
float. (http://webaudio.github.io/web-audio-api/#idl-def-AudioBuffer)

Also, the code computed a float value and returned that as a double
(and converted that back to float because of the incorrect IDL
type). Fix that so we actually compute and return the correct double.

A new test added to audiobuffer.html to test that the correct duration
is returned. This change also caused the
audiobuffersource-loop-points.html test to return slightly different
results. The difference is less than 1 bit between the two versions.

BUG=355765

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

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