Add Rubocop to the Metasploit project

This is a work in progress because the code base is old and the style
varies wildly, however .rubocop.yml can (and should) be tweaked over
time to change standards as we see fit.  As it stands right now there
are few (if any) existing modules that pass Rubocop but it is not that unreasonable to strive to get new modules to pass.

The configuration file as committed basically will warn on anything that doesn't meet the suggested style guidelines in use by the Metasploit project, which are identical to Google's with the exceptions that:

* Lines are going to be a little longer and this is normal and just easier
* Methods, in particular the "main" methods called in modules like run_host, etc, are going to be long.  Perhaps 30 is way too low.
* Classes under modules are expected to be huge.  This is OK.
* We don't document the top level class
* Numbers are long.  That's OK.

Unless this just dies right here, I see this configuration file changing over time and people using it more as a way to correct obvious style/etc issues but not (yet) necessarily making it a requirement to land.

I've integrated this into msftidy too.

To validate, simply run msftidy against any module you have, and see that it (likely) fails:

```
$  ./tools/msftidy.rb modules/auxiliary/fuzzers/smb/smb_create_pipe.rb 
modules/auxiliary/fuzzers/smb/smb_create_pipe.rb - [ERROR] Fails to pass Rubocop Ruby style guidelines (run 'rubocop modules/auxiliary/fuzzers/smb/smb_create_pipe.rb' to see violations)
```

Then, if you do as instructed and run rubocop, you'll see the pile of errors and you can fix them.  Or you can be lazy and just let rubocop fix them (with -a) and then confirm that it now passes:

```
$  ./tools/msftidy.rb modules/auxiliary/fuzzers/smb/smb_create_pipe.rb
# confirm with rubocop
$   rubocop modules/auxiliary/fuzzers/smb/smb_create_pipe.rb
Inspecting 1 file
.

1 file inspected, no offenses detected
```