Celtic's paid for a host of missed chances as they were held to a 1-1 draw against St Johnstone at McDiarmid Park.