[CLEANUP] Clean the definition of identifier
[CLEANUP, COMMENT] Fix Typos, rephrase
[PACKAGING] Generate in build_py instead of build.
[TESTS] Move tests into distribution.

Ship tests with the distribution. Simplify the setup.py.
[PACKAGING] Move ast_gen importing into a function.

Remove ast_gen from the global name space. Import and use only
within the overidden command.