Python 2 compatibility
o Specify file encoding is utf-8
o Consistenly use tab indentation
o Added != (__ne__) support in terms of == (__eq__) to all classes
o Simplify charclass.escape to not use Python3-only nonlocal keyword
o Add union and concatenation to the main.py demo