Phabricator (arcanist) squashed my local commits when uploading the patch, but this is a good first cut to get feedback about direction. (If I should be using a mailing list instead, please let me know.) http://reviews.llvm.org/D5056