Refactors firefox js usage into a mixin.

This hides the various shell token trickery I use to execute js in a Firefox post module behind a nice pretty "exec_js" method. I also added base64 encoding to the history module, since it was failing in some instances depending on charset.

#### Verification
- [ ] get a privileged firefox shell
- [ ] `module/post/firefox/gather/cookies` gets you cookies
- [ ] `module/post/firefox/gather/history` gets you history
- [ ] `module/post/firefox/gather/passwords` gets you passwords
- [ ] `module/post/firefox/gather/xss` works (`set SCRIPT "return 1"` then `run` should print `1` in msfconsole)