[ngrams] fixes to ngrams state synchronization

The issue was this:

When user clicks around the ngrams table, only local state is
updated (`ngramsLocalPatch`). After he clicks 'Sychronize', this is
uploaded to server and `ngramsVersion` number is bumped up. What
happened is that `ngramsValidPatch` inside internal state was updated
and so the patch was sychronized locally, without refreshing the
table. However, this resulted in errors later, when user changed the
same term, because then, when user changes view to 'Stop terms', the
table is refreshed with the newly applied terms and `ngramsValidPatch`
doesn't make sense anymore.

The solution is to set `ngramsValidPatch` to `mempty` and, after state
is updated, refresh the current table.

It could be argued whether it's the most optimal thing to do and why
don't we keep things "offline". Well, clicking on 'Sychronize'
requires the client to be online so why not sync the table already at
this time?

I guess this makes things bit simpler and I think it renders
`ngramsValidPatch` unnecessary. So our state could be
simplified (patches is already a complex beast).
parent 874bc571
Pipeline #4585 canceled with stage