Reduce Compilation Time

@stuartarchibald or someone else probably knows a cleaner way, but for a particular nbi file I used something like this while investigating for this issue. Most of it is cribbed out of caching.py.

    for nbi in args.nbi_info:
        if not nbi.endswith('.nbi'):
            logger.warning(f"skipping filename that doesn't end with 'nbi' -->'{nbi}'")
            continue

        import io
        with io.BytesIO(cu.super_slurp(nbi, audit_logr=logger)) as f:
            version = pickle.load(f)
            data = f.read()
        if version != numba.__version__:
            logger.warning(
                f"skipping, program numba version '{numba.__version__}' doesn't match index"
                f" file numba version '{version}'"
            )
            continue
        stamp, overloads = pickle.loads(data)

        print(f'\nindex={nbi}')
        print(f'numba_version={version}')
        print(f'stamp={stamp}')
        for overload, fname in overloads.items():
            print(f'overload_fname={fname}')
            sig, flags, stuff = overload
            print(f'overload_key_signature={sig}')
            print(f'overload_key_magic_tuple={flags}')
            print(f'overload_key_code_hash={stuff}')