Katie Boulter beat Bernarda Pera in a three set classic to secure her place in the second round of the Canadian Open in Toronto.