Allow late initialization of gamepad haptics

Several fields of the blink::Gamepad object are only modified when
the device is first connected. This is done under the assumption that
these device properties cannot change while the device is connected.
However, in some cases we expose a gamepad to a page before we have
determined the haptic capabilities of the gamepad. Once the
capabilities are known, the gamepad object is updated but the new
value is not propagated. Instead, the page still sees the null value.

This changes the vibrationActuator caching behavior to allow a one-time
update from null to non-null after the gamepad is initially connected.

BUG=749295

Change-Id: I45eb23a02a26681617d9e0f769c01acfaed21135
Reviewed-on: https://chromium-review.googlesource.com/952221
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Matt Reynolds <mattreynolds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555605}
1 file changed