Applied Combinatorics on Words