make components remove their reference to their gameobject in dispose, to help clean up when used in leaky programs.
fix issue with multiple calls to Room.NetworkDestroy throwing null refs (now it only lets the call go through once)