Created icecast join/leave authentication hooks

The idea is instead of every minute polling for data, on a client
connect and disconnect, we obtain the listener data and add a record to
the database. We're able to get much more information from the database
this way.