Text this: A boundary preserving numerical algorithm for the Wright-Fisher model with mutation