Finn Harps pulled off a superb victory against league champions Shamrock Rovers to pull further clear of the relegation places.