Add @NoLayout annotation (#12936)

This commit adds support for @NoLayout and updates most framework
components to use the annotation where it makes sense

Change-Id: I99320a6aa6de717da5f2463dd8acfcd412165767