Calls listener after every change, with the field that moved. Returns a function that stops the listening.