2.0 Refactor

Totally not compatible in the slightest with earlier versions.

- [x] Tidy up the code a little
- [x] Replace custom event handling with native Promises
- [x] Get rid of things not exactly related to setting up a webcam or mic
- [x] Keep public API on function prototype, and private stuff outside of it
- [x] Change the name because it doesn't just take pictures any more (or at all)
- [ ] Figure out a better way to test the thing
- [ ] Make it extensible with plugins, so code for recording, saving to disk, etc. can be re-used