Cache Java type -> Thrift type conversions

This improves serialization and deserialization perf a lot:

```
                                -------- old --------   -------- new --------     ------ win % ------
Benchmark                          ns/iter      intvl      ns/iter      intvl      ns/iter      intvl
=====================================================================================================
deserialize_Empty                      700         12          106          1          560       1100
deserialize_SmallInt                   756         10          133          2          468        400
deserialize_BigInt                     782          9          155          2          404        350
deserialize_SmallString                822         19          202          3          306        533
deserialize_BigString                 9152         53         8450         99            8        -46
deserialize_BigBinary                 3011        189         2137         24           40        687
deserialize_LargeBinary            5289470    3173098      5285250    3260233            0         -2
deserialize_Mixed                      874          8          269          3          224        166
deserialize_SmallListInt              1010         19          386          4          161        375
deserialize_BigListInt              304536       6177       309774       3594           -1         71
deserialize_BigListMixed           1848336      13685      1942206     119850           -4        -88
deserialize_LargeListMixed       224981060   83408124    221868657   75328617            1         10
serialize_Empty                        903         17          131          3          589        466
serialize_SmallInt                     961         14          173          3          455        366
serialize_BigInt                      1039         11          240          4          332        175
serialize_SmallString                 1145         22          301          4          280        450
serialize_BigString                  51215        208        49916        467            2        -55
serialize_BigBinary                   5595        125         4788        132           16         -5
serialize_LargeBinary              7592627    6189458      7723409    5639016           -1          9
serialize_Mixed                       1200         18          425          6          182        200
serialize_SmallListInt                1322         31          516          9          156        244
serialize_BigListInt                253678       1988       249520       3737            1        -46
serialize_BigListMixed             2424505      36120      2408576      22974            0         57
serialize_LargeListMixed         269418097   69367304    268303289   70283444            0         -1
```
Merge https://github.com/facebook/swift

Conflicts:
	swift-codec/src/main/java/com/facebook/swift/codec/metadata/ThriftCatalog.java