Implementacao inicial de prefetching

- Alterar datasource de playlist para possibiltar obter o proximo video
  a ser assistido para fazer prefetch
- Evitar que o search encontre o mesmo peer servidor para prefetch se
  ele ja estiver enviando o video que esta sendo assistido
- Implementar iterador por chave no dictionary
- Fazer um dictionary que mapeia o video sendo recebido ao objeto do
  video
- Criar metodo para descobrir o video que um peer esta recebendo de um
  dado peer servidor
- Criar funcao para fechar todos os canais de downlink de um peer, para
  possibilitar fechar os canais de prefetch
Consertar warnings de compilacao
Consertar verificacao de prefetching
Adicao de espaco na variavel
Nao assumir que UL eh de video assistido

-setar currentlyViewing para NULL dentro do closeDLVideoChannel
Alteracao na regra para adicionar video na cache

- Agora um video eh adicionado a cache independente de
  ter sido recebido do CDN ou de outro peer
- Faz o clone de um video antes de inserir na cache para
  evitar corrupcao de dados
Adicao de prefetchDownlinkRatePercent

- Adicao do atributo no channel
- Adicao do atributo no xml
- Alteracao da funcao createChannel para receber
  esse parametro tambem
Consertar método para mostrar os canais abertos

- Procurar o servidor que está enviando o vídeo que o peer está
  assistindo
- Se não encontrar, está assistindo do CDN ou da cache local
Implementacao do uso prefetchDownlinkRatePercent

- Adicao de um parametro inteiro para representar se
  esta ou nao em prefetch
- Caso o parametro seja verdadeiro, a taxa eh recalculada
  para um aumento equivalente à porcentagem de
  prefetchDownlinkRatePercent