Change structures of storing bindings between Symbols and Equivalent Classes.
Add a Bitwidth characteristic as a common feature of integral Symbol to make (char)(int x) and (uchar)(int x) treated under the same Equivalent Class.
The link Symbol - Class was direct and now it depends on the effective (minimal) Bitwidth of the Symbol.
The link Class - Symbol stays as previously.
effective bitwidth - a bitwidth which is enough to hold all feasible values of the symbol. E.g. for (unsigned short)(char)(int)x, the symbol has a type of unsigned short but in range [0, 255] because it is restricted by the size of char during casting.
Some test cases are affected by regression for the sake of the next patch which will fix it.
This patch does not introduce integral casts but prepares the field for the core patch.