Allow the implementation to return references instead of pointers to the bindings

Allow the implementation to return references instead of pointers to the
bindings. Up until now, this limitation was preventing some refactoring on the
implementation side.

This CL also makes Element::classList() and Element::dataset() return a
reference as a proof of concept, as this method is exposed to the JS.

R=haraken, adamk, tkent

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

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