[new AA] add aaGetLValueX and aaGetRValueX

This PR linked with D-Programming-Language/dmd#3904 and introduces l-value and r-value templated aaGetX functions.
aaGetX should be templated, because in new AA it should know a static type of AA to create new instance of it if it is empty.
No need for `extern(C)`.