Better YouTube parsing

This fix correctly parses YouTube URLs with extra query string parameters. The regex was matching against `&` in the query string, but sometimes the URLs are passed with encoded query string entities (`&amp;`). This includes an update to the regex and some tests.

Fixes #2