the stuff we talked about

I cherry-picked or recreated all of the commits @pjrobertson had outstanding and made the two changes we talked about on IRC:

  * switch to `sharedAddressBook`
  * just call `invalidateSelf` when the OS sends a notification of changes