Channel#autoqueue

this promotes the autoqueue to the actual channel. It has all the logic
for what pool to draw from with the advantage of taking how many songs
to queue as an argument
Channel#next

This adds a #next method directly to the channel. Instead of just using
it's mpd to get to the next song, this adds some logic to ensure we
always have ANOTHER SONG TO PLAY if we're going to the next song.
convenience method to get the song that's on deck in the queue
pull all of the commands into a lib to make it a little cleaner
instead, just use the commands lib
default to the first channel if we aren't given a channel