libchromeos: Support D-Bus STRUCT of any size via std::tuple<>

We supported only STRUCTs of two elements only as a native C++ type
std::pair<U,V>. The D-Bus binding generator needs to be able to
create adaptors and proxies for methods that use structs of more
than two elements in order to support some of existing interfaces
(for example, org.freedesktop.ModemManager.Modem.Gsm.Contacts interface
List() method returns an array of structs of three elements, having
a signature of "a(uss)" and cros-disks uses "a(usus)").

BUG=None
TEST=FEATURES=test emerge-link libchromeos

Change-Id: Id13a07a46160c53d4f47de8153811353948e2faf
Reviewed-on: https://chromium-review.googlesource.com/229900
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
2 files changed