Provide struct-based C++ interface

Replace many-parameter C interface with a cleaner and more complete
C++ interface for passing around policies in a struct.

Bug: 143307095
Test: treehugger
Change-Id: I95aeaae211f7ad698854bcc66c6d25a0bcb24cfe
3 files changed