io/i2c: distinguish transport-layer opener args from protocol ones

I2C device addresses are required regardless of the transport layer.
Forcing it to be in the driver.Opener allows the third parties
distribute driver-agnostic libraries with embedded address constants.

Fixes golang/go#15803.

Change-Id: I5a1a14213930fd58baf17dd91481190065d346c7
Reviewed-on: https://go-review.googlesource.com/24215
Reviewed-by: Johan Euphrosine <proppy@google.com>
Reviewed-by: Matt Aimonetti <mattaimonetti@gmail.com>
Reviewed-by: Jaana Burcu Dogan <jbd@google.com>
6 files changed