Theresa May has offered a personal and public apology to families caught up in the Grenfell Tower fire.