Support for more streams types (icecast, shoutcast, custom)

I removed status code and works with checking metaint exists instead.
Also had issues with the header parser and fixed it

This works with most of my streams now.

This needs of course some ruby-ifying.
Why do we first send a GET request and then a HEAD request?

What is the `transferMode.dlna.org` header and why is it necessary?

Why are the `Host`, `Connection` and `User-Agent` headers necessary?