Update get() to optionally take an extra parameter

When we get videos, instead of specifying the id as a filter, the
method takes it directly as an argument. To get round this I've
modified the get() method to set arguments based on what's passed.
Fix issue when getting multiple things in one run

If a route required both channel and playlist data for example, the
filters from the channel request would be left behind for the next
one - in this case playlists. That results in the API getting confused,
which is not good. I fix it by resetting filters before each new request.
Add additional methods

Adds support for 4 new methods: channels, playlists, playlistItems
and videos. That's pretty much it for the core stuff!