improve distribution

Use setuptools instead of distutils.

fix #366
fix #359