Philippine President Rodrigo Duterte has signed an executive order that will impose a wide-ranging ban on smoking in public.