Expose AsyncLocalStorage get/set methods (#18454)
Expose AsyncLocalStorage get/set methods (#18454)

Summary:
Currently, if an app uses AsyncStorage on the JS side, there is no public interface to access stored data from the native side.

In our app, written in Swift, I have written a [helper](https://gist.github.com/ejmartin504/d501abe55c28450a0e52ac39aee7b0e6) that pulls out the data. I accomplished this by reverse-engineering the code in RCTAsyncLocalStorage.m. It would have been far easier had this code been exposed to native.

I made this change locally and tested out getting the data from Swift code. This worked like a charm:

```swift
let storage = RCTAsyncLocalStorage()
let cacheKey = "test"
storage.methodQueue?.async {
    self.storage.multiGet([cacheKey]) { values in
        print(values)
    }
}
```

[IOS ][ENHANCEMENT ][RCTAsyncLocalStorage.h] - Expose AsyncLocalStorage get/set methods to native code.

<!--
  **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.**

    CATEGORY
  [----------]      TYPE
  [ CLI      ] [-------------]    LOCATION
  [ DOCS     ] [ BREAKING    ] [-------------]
  [ GENERAL  ] [ BUGFIX      ] [ {Component} ]
  [ INTERNAL ] [ ENHANCEMENT ] [ {Filename}  ]
  [ IOS      ] [ FEATURE     ] [ {Directory} ]   |-----------|
  [ ANDROID  ] [ MINOR       ] [ {Framework} ] - | {Message} |
  [----------] [-------------] [-------------]   |-----------|

 EXAMPLES:

 [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things
 [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput
 [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with
 [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word
 [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position
 [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see
-->
Pull Request resolved: https://github.com/facebook/react-native/pull/18454

Differential Revision: D13860333

Pulled By: cpojer

fbshipit-source-id: b33ee5bf1ec65c8291bfcb76b0d6f0df39376a7e

exponent/react-native,hoangpham95/react-native,pandiaraj44/react-native,facebook/react-native,exponentjs/react-native,javache/react-native,exponentjs/react-native,hammerandchisel/react-native,facebook/react-native,hammerandchisel/react-native,exponentjs/react-native,janicduplessis/react-native,myntra/react-native,pandiaraj44/react-native,janicduplessis/react-native,arthuralee/react-native,hoangpham95/react-native,pandiaraj44/react-native,javache/react-native,myntra/react-native,hammerandchisel/react-native,pandiaraj44/react-native,arthuralee/react-native,exponentjs/react-native,exponentjs/react-native,pandiaraj44/react-native,janicduplessis/react-native,myntra/react-native,facebook/react-native,hammerandchisel/react-native,exponent/react-native,hoangpham95/react-native,javache/react-native,javache/react-native,facebook/react-native,arthuralee/react-native,exponent/react-native,hammerandchisel/react-native,myntra/react-native,myntra/react-native,janicduplessis/react-native,javache/react-native,myntra/react-native,facebook/react-native,arthuralee/react-native,pandiaraj44/react-native,facebook/react-native,hammerandchisel/react-native,hammerandchisel/react-native,myntra/react-native,exponent/react-native,exponentjs/react-native,hammerandchisel/react-native,facebook/react-native,exponent/react-native,exponent/react-native,pandiaraj44/react-native,janicduplessis/react-native,exponent/react-native,arthuralee/react-native,myntra/react-native,facebook/react-native,exponent/react-native,javache/react-native,exponentjs/react-native,facebook/react-native,exponentjs/react-native,javache/react-native,hoangpham95/react-native,janicduplessis/react-native,myntra/react-native,hoangpham95/react-native,janicduplessis/react-native,hoangpham95/react-native,janicduplessis/react-native,javache/react-native,pandiaraj44/react-native,hoangpham95/react-native,hoangpham95/react-native,javache/react-native