Reclaim unused atoms. Normally invoked after agc_margin
(a Prolog flag) atoms have been created. On multithreaded versions the
actual collection is delayed until there are no threads performing
normal garbage collection. In this case garbage_collect_atoms/0
returns immediately. Note that there is no guarantee it will ever
happen, as there may always be threads performing garbage collection.