Refactoring, Python 3/Linux support, and album art

Let me know what you think.