Solving Puzzles Described in English by Automated Translation to Answer Set Programming and Learning How To Do That Translation