Change MD5 to SHA1 and support Py26 and PyPy

Also a lot of refactorings.
Improve code readability
Add tests for get_extension
Update docs
Fix a bug where non-ascii tags crashed the program
Use sphinx.ext.viewcode
Improve unicode filename handling
Clear build files before dist
Update CHANGES
Put important things first
Fix typo
Add travis config
Bump into 0.3.0
Merge branch 'release-0.3.0'