A late goal by substitute Luke Moore was enough for Swansea to beat Newcastle 1-0 at the Liberty Stadium.