Rewrite abstraction and SLU of time expressions

Abstraction recognizes NUMBER category label instead of TIME, i.e. individual numbers are abstracted instead of whole time expressions, so that more useful information is preserved for SLU, where more flexible and informed matching is possible.

Add support for reversed form ("dvaadvacet"), one-word form ("dvacetdva"), alternative pronounciations ("sedum") and some additional inflections ("devatenácté").

Where obvious, time expressions are correctly abstracted as TIME category and interpreted even without prepositions and time words ("šestnáct nula nula"). Otherwise, NUMBER category is used for future use (e.g. for route numbers or selection of alternatives).

In PTICSHDCSLU, extract utterance preprocessing  from `parse_1_best` to `preprocess_utterance` so it can be called in gen_uniq script. Remove useless `if self.preprocessing:` check, as it's already accessed in constructor.

Implement `__setitem__` method to `Utterance` to allow rewriting of NUMBER words to TIME words.
You are right, this is a bit obscure. I will add a comment.

But the idea is that we want to allow time expressions without prepositions such as:
`ČTYŘI HODINY <=> inform(time="4:00")` instead of `null()`
without interpreting every `TEĎ` occurrence as `inform(time="now")`:
`NO A TEĎ TO <=> null()` instead of `inform(time="now")`