refactor py2&3 compatible layer, remove future, and add own _compat.py, inspired from jinjia2 and future