Magnetic fields of Uranus and Neptune: Metallic fluid hydrogen