A man has been charged with causing an explosion and starting a fire at a hotel housing asylum seekers in central London.