make Ast_mapper iterate over all locations inside Longident.t
These locations, which are new in 5.4, are sometimes traversed (e.g. Pexp_setfield) and
sometimes not (e.g. Pexp_field). So clearly a bug.
The fix is concretely:
- change map_loc to map over both fields `{ loc; txt }` of `Location.loc`
- propagate the change, ie change `map_loc` to `map_string_loc`,
`map_string_opt_loc` or `map_loc_lid` depending on the type. All occurrences
of the latter are bug fixes.