parse array range literal and permit exclusive range

- array range literal
    [{expr}..{expr}] or [{expr}...{expr}]

- exclusive range
    ({expr}...{expr})
refatorings for color output and more general ast_stringizer

- a colorizer for a compiler option to output colorful results or not
- makes string type of ast_stringizer template parameter