Add static asserts we have a full list of mirror classes

We need to know if a particular object is of a mirrored class type in
order for structural class redefinition to work correctly. For
simplicity and to avoid making class objects larger we do this with a
simple list of mirror-class descriptors. This adds some basic
static_assert checking and a documenting macro to all mirror classes.
This should help to ensure nobody in the future unintentionally breaks
structural class redefinition by adding a new mirror type.

Test: treehugger
Bug: 144349987
Change-Id: I47c7b256655e9ce9bcf21d9670e0511bcbac65c9
24 files changed