Initial attempt at `commentStream` function

The function should behave like praw's `comment_stream` functionality,
but there are some ordering issues and some complexity due to the need
to "extend" `Listing`.
Fix `Stream` implementation

We now have a fully working `commentStream` implementation. Some
implementation improvements realized in the stream implementation should
be ported to the listing implementation.

This was my first stab at trying to write some Javascript/Coffeescript
using promises (via the excellent Q library).
Treat HTTP errors the same as client side errors

This way, when we test the value of `error` in our callbacks for HTTP
backed functions, it'll be an exception type when an HTTP error occured
(not just client side errors). This seems more logical for a JSON API,
instead of checking `response.statusCode` all the damn time.