Fix a bug in ProcessState::getContainingMemoryArea() where a global's size would be calculated using the global's pointer type, rather than the type of the pointee element. Also make this function set the permission of the returned area according to whether or not the global is constant.

Also make TraceProcessListener::getContainingMemoryArea() set the permission of the returned area according to whether or not the global is constant.
Allow clients of seec::cm::ProcessState to find the areas of unmapped global
variables. Use this functionality to layout the areas (as if they were malloc
or known areas) in GraphLayout.