Enable Py 3 compat, refactor function

Make code compatible with Python 3. Refactor the `subscribe` function. For exact details, please see the commit messages and commit diffs.
Both `_` and `dummy` are acceptable to pylint, and @jcallaha has [pointed out](http://docs.python-guide.org/en/latest/writing/style/#create-an-ignored-variable) that the `_` can be slightly problematic. I'm fine with either `_` or `dummy`. Thoughts, @elyezer?