add coarse-grain support on ARM
Split from #1551 (closed) as this is a big feature but is lower priority and thus may be delayed significantly from the core ARM port. Coarse-grain freezing, merging, and persisting has a lot of x86-specific code and will take significant effort to port.