Don't take address of zero sized std::vector

MSVS in debug mode asserts an error when then null values is returned
from a zero sized std::vector. So a special case is added to not set a
zero sized array.

Additional testing is added on the Identity transform for these
Set/Get methods.

Change-Id: I8c34ecd6377091f0d2db8f47b56ae619c78c1b39
Revert "Don't take address of zero sized std::vector"

This reverts commit 03b837c588ba84851f4273127732b46e254917db.

Change-Id: I8833fd7619412d9788d722057d931006f59c8d49
Merge commit 'cd1eff9' into next

Change-Id: Ib5335237e22d8c5739509b0505cd1f18b6da8f00