Add support for offline updates via msfupdate

Some users using the binary installer in *air-gapped* networks (no external internet access) apply updates via an offline update file.  This is currently only supported in the pro/community UI.  This adds support for doing this via `msfupdate` as well.

Not only does this make it nice for air-gapped command line users, it is also much easier to script/automate in testing environments.

## Verification Steps:

### `msfupdate` still works in git installs
- [ ] Checkout this branch (bturner-r7/feature/msfupdate-offline) via git
- [ ] Run msfupdate
- [ ] VERFIY: No errors.  You'll be moved to the upstream master branch, but that is as designed

### `msfupdate` still works in binary installer using online update
- [ ] Install Metasploit in a virtual machine using a [binary installer](https://github.com/rapid7/metasploit-framework/wiki/Downloads-by-Version)
- [ ] Manually replace `/opt/metasploit/apps/pro/msf3/msfupdate` using the `msfupdate` from this pull request: https://raw.github.com/bturner-r7/metasploit-framework/feature/msfupdate-offline/msfupdate
- [ ] Create a powered-on snapshot (you'll need it later)
- [ ] Run `msfupdate`
- [ ] VERIFY: Update installs successfully.

### `msfupdate` works with an offline update
- [ ] Restore the VM snapshot you created earlier
- [ ] Obtain an offline update.  @bturner-r7 can help you locate one
- [ ] Run `msfupdate offline-update.bin` (where "offline-update.bin" is the path to the offline update file)
- [ ] VERIFY: You see a `Installing update <path>` message (where "<path>" is the full path to the offline update)
- [ ] VERIFY: Update installs successfully.


NOTE: Offline update via msfupdate doesn't work on Windows.  This will take an additional change to the pro repository.