Ireland squeeze past Italy to stay in Six Nations title hunt