Supreme Court strikes down gun law that requires license for public firearm carry