refactor: store AsyncAF instance data in a WeakMap for privacy
refactor: store AsyncAF instance data in a WeakMap for privacy

BREAKING CHANGE: the inner promise within AsyncAF instances can no longer be accessed at, e.g., AsyncAF().data

AsyncAF/AsyncAF