ProcessMachCore::DoLoadCore was implemented to handle the two LC_NOTEs "kern ver str" and "main bin spec" with only certain combinations of UUID and address and type present. Other groups are starting to adopt these corefile hints and there are combinations that lldb wouldn't handle correctly.
This patch cleans up the handling of these hints in DoLoadCore a lot -- I've been wanting to clean this up for over a year now -- and adds tests for all of the combinations.
I did make one change to DynamicLoaderStatic to only set load addresses of Sections to their file addresses (slide==0) if an address hasn't already been set. This gives me the ability to set the load address in ProcessMachCore and have it not get re-set back to the original file address later by the dynamic loader plugin.
The rest of this patch is is code that's my little playground of ProcessMachCore, so I don't know if others will have any comments, but I wanted to open it to the floor if anyone has suggestions or questions.
We can use make_shared here instead.