Unified Player Interface

This pull request, now open for commentary, is to transition from the flash-specific SWFObject loader to a more standardized interface, which allows us to more easily implement new sources in the future.

More importantly, it should fix the common "playlist fails to load next video" issue (#61).

**Still needs:**
- [ ] volume controls don't correctly set volume on page refresh.
- [x] multiple videos per track aren't correctly loaded in the client.
- [x] haven't tested Grooveshark with this yet.
- [x] MP3 streaming, for that matter.