Add more exhaustive tests for .asTypeOf (#4160) (#4169)
This includes changing AsTypeOfSpec to be FunSpec instead of FlatSpec so that the tests can have more structure. (cherry picked from commit 2997fa87 ) Co-authored-by:Jack Koenig <koenig@sifive.com>