Update BrowserExploitServer for JSObfu

This updates the BrwoserExploitServer mixin to work with the updated version of JSObfu.

Verification steps:

- [ ] Make sure travis pass
- [ ] Run windows/browser/ie_cbutton_uaf on a vulnerable xp to make sure the information gathering stage of BES is working.

Note that there is a new method #js_obfuscate. I added this method because typically in browser exploits we obfuscate like this:

```ruby
if datastore['OBFUSCATE']
	js = ::Rex::Exploitation::JSObfu.new(js)
	js.obfuscate
end
```

I don't really like this because:

1. You always have to check OBFUSCATE before you use it. It's a hassle.
2. Modules should never call Rex directly.

So instead, let's do this:

1 - The BES mixin registers a JsObfuscate datastore option. You set it to tell it how many times to obfuscate. The default is 0, which means no obfuscation.
2 - In your module, when you're adding JavaScript, you should always call #js_obfuscate like this:

```ruby
# This returns a Rex::Exploitation::JSObfu object
js = js_obfusate(js, datastore['JsObfucate'])
```

Your module doesn't really have to check the JsObfuscate option. Because if it's nil or 0, the obfuscation won't kick in. You will simply get the original version.

3 - If your module does not want js_obfuscate at all, you don't have to use it. But you should deregister the JsObfuscate option. As a code reviewer, try to enforce this.

If you want to play with a module, you can try this:
https://gist.github.com/wchen-r7/3bb2d377e25831d2a960

After this PR is merged, I will update the wiki for BrowserExploitServer and JSObfu. I will also update existing modules to implement this correctly.

I invite @jvennix-r7 and @jvazquez-r7 to review this PR.
How to I spec something that uses a datastore option?