Bugfix

I opened an issue on this, but I'm at a hackathon so I decided to look into the problem myself.

Sometimes there would be json decode errors for me, and due to the way errors checking was implemented the reading goroutine would just end itself and anything waiting on data would block forever. This change fixes that by returning both data and an error through the channel. Decode errors could just be used to ignore the frame, but also could be used to recover data if needed.