[WASI] Importing namespaced 3rd party C extensions (with import cycles)

@brettcannon There was an issue in the Python BuiltinImporter. In this case, the builtin extension was namespaced below numpy.core. The BuiltinImport is not expecting namespaced extensions and when it sees the path parameter supplied, it short-circuits and returns None. The simple fix I put in (that may not be perfect), is to check for a ‘.’ in the import name and to see if it is a builtin name before doing anything else.

class BuiltinImporter:

   . . .

    @classmethod
    def find_spec(cls, fullname, path=None, target=None):
        if '.' in fullname and _imp.is_builtin(fullname):
            return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
        if path is not None:
            return None
        if _imp.is_builtin(fullname):
            return spec_from_loader(fullname, cls, origin=cls._ORIGIN)
        else:
            return None