Targets connection leaks when many pubsubs are created in a loop Issue: #555

Added context manager to the PubSub class. Therefore, pubsub objects
release themselves automatically when used with these context managers

e.g.
for i in range(100):
  #blah
  with r.pubsub() as s:
    s.subsribe('channel')
    #more blah

The above code will create just one connection that will be reused.