Write an asynchronous version of the signature generator and make async functionality optional (like `shazam.py[async]` or smth).