refactor: better api to get/set external account data
Created by: beyang
This is an incremental PR in preparation for the GitHub authz provider (bl/gh-authz
branch). No change in behavior, just making an internal API support what that branch needs.