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.
Since we don't use "_" prefix to mark private methods (is there a reason for that, btw?), I feel a bit insecure about changing type signature of existing methods.
Moving normalization into `abstract_utterance` would require adding `utterance` (normalized, but not abstracted) to its return value. The `abstract_utterance` method is not used elsewhere though, so such change wouldn't break anything I guess. 
Still, I'm not sure if I'd consider normalization as a part of abstraction, so your suggestion  (at least to me) feels to go against the semantics of the whole thing.