Separate allow_gc flag for scan

This add a separately configurable flag to enable/disable allow_gc
Yes, but Scan helpfully dumps info into its `__dict__`.  So it is indirectly assigned.