Fix #18:

When reading ICY streams, metadata chunks are inserted into encoded
data.

Because of this, the reading function had a state, used to parse out
ICY data from encoded data. When I wrote the mutex thing, I was not
careful enough and changed this to make a fresh call to read each
time. This ended up messing with metadata chunks parsing, thus
allowing for some of this data to slip into encoded data, which the
decoder didn't like.