Various improvements

- fix parsing of 'sizeof(type)' expression and of '(type)' cast; now
casts should parse correctly (they aren't supported yet, though) and
things like 'sizeof((type))' and 'sizeof type' shouldn't compile
- improve error checking and reporting in shifts and division
- clean up remaining error messages
- minor size improvement
- make several macros, which define sizes of internal tables,
configurable at compile time via compiler's preprocessor options