Patch Set 1: Do not submit; Unclean IP, do not check in

Aside from the inline comments describing some issues with the implementation, this is >200 lines so we need to run it through the CQ process.  I'll get that started after we have an updated draft of the change that is closer to something we want to submit.