Patch Set 5: Looks good to me, but someone else must approve; Build Failed

This actually looks pretty good. I'm going to try and combine it with the unit tests written by Alex and see if we can get a final patch together that is rebased on master and works correctly. Then we can run it through the IP process. Yay.

(NB: My -1 build failed is actually a note that I know this needs to be rebased.)