Youtube improvements and refactoring

I've implemented signature deciphering so the videos linked in #83 should now be downloadable.

The Youtube plugin was getting too large, so I also refactored it a bit by splitting it up in to several files. So now plugins can have helper classes that should be placed in a folder inside the plugins directory that has the same name as the plugin (without the .rb extension). Any class that is in such a directory will be dynamically added as an inner class of the plugin class.

I found a bug in the Youtube plugin where it was not splitting the format map on the right delimiter. This is fixed now, and I am pretty sure this was the issue behind #75 so this commit closes #75 for now.

I also changed the spec structure a little. Now all integration tests are in a separate directory and the unit tests (currently only one - I wrote a unit test for the decipherer class) is in another directory.

And I changed the way video qualities are specified so it's not possible to specify a width, height and extension. I think that's all. :smiley_cat: