Premier League leaders Liverpool had their advantage cut to seven points as Fabian Schar's late equaliser earned Newcastle United a thrilling 3-3 draw at St James' Park.