Working YouTube

Detecting and embedding YouTube videos now works, but the sizes aren't
adjust because that's another thing to do.
Better options management

Options and defaults can both now be extended using setOptions() and
setDefaults()
Also broke out default configs for providers into their constructors, so
that adding providers doesn't require changing the defaults in the core.