Pass implementation object to supplemental classes by reference

Pass implementation object to supplemental classes by reference instead of by
pointer as it can never be null. It makes the code look safer and avoids having
a lot of assertions in the implementation.

R=adamk@chromium.org, haraken@chromium.org, abarth, adamk, haraken

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

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