This is a follow-up to JDK-8250989:
- Move common code for writing the CDS archive from metaspaceShared.cpp to archiveBuilder.cpp
- Data structures related to dumping were haphazardly organized in several classes (e.g., DumpRegions). We needed various APIs to access them across classes. These should be consolidated in archiveBuilder.cpp and the API should be cleaned up
- Detailed stats (DumpAllocStats::print_stats) were available only for static dump. Refactor the code so they are also printed for dynamic dump