Use GC critical section for adding and removing app images

A SuspendAll was not sufficient since there are points during the GC
when the mutator lock can be temporarily released. This was causing
at least some assert failures in CC such as attempting to clear
black read barrier pointers on app image objects with white read
barrier pointers.

Bug: 26979834
Bug: 26970811
Bug: 26786304
Bug: 22858531

Change-Id: I375fc05e787e629c40de6f345802447c02601ff0
4 files changed