msfconsole boot profiling and optimization

MSP-11368

* Enhancements
  * Set METASPLOIT_FRAMEWORK_PROFILE=true to profile the time msfconsole from start to exit like so: `METASPLOIT_FRAMEWORK_PROFILE=true ./msfconsole -q -x exit`  **NOTE: `gem install perftools.rb` manually as it's not in the bundle on purpose**
* Bug Fixes
  * Reduced `msfconsole` boot time from b5c3c87790f08b2cb6b986fa4e22e8674e5ed153 by 40.95% by [removing fastlib](https://github.com/limhoff-r7/metasploit-framework/commit/b863978028f4414ec19f3b53d3498bf1a459974d) and [using `Set#include?` instead of `Array#include?` in `#update_all_module_details`](https://github.com/limhoff-r7/metasploit-framework/commit/5884cbc196f02b160bdadfe2ab9c22a81ef03cea).  This is leaves the time still at +104.5% over the 4.9.0 tag, but is an improvement over the +246.38% over the 4.9.0 tag from b5c3c87790f08b2cb6b986fa4e22e8674e5ed153.
* Incompatible changes
  * Removal of `fastlib`
  
# Verification 

## Cucumber
- [ ] `rake features`
- [ ] VERIFY no failures

## Specs
- [ ] `rake spec`
- [ ] VERIFY no failures

## msfconsole

### Profiling
- [ ] `METASPLOIT_FRAMEWORK_PROFILE=true ./msfconsole -q -x exit`
- [ ] VERIFY `msfconsole` exits
- [ ] VERIFY no error is printed
- [ ] VERIFY the profile call graph pdf is opened

### Module loading
- [ ] `rake db:drop`
- [ ] `./msfconsole`
- [ ] `irb`
- [ ] `Mdm::Module::Detail.count`
- [ ] VERIFY count is `2679`.  (If it's below, wait a bit and see if it's still changing)
- [ ] `exit`
- [ ] `use exploit/windows/smb/ms08_067_netapi`
- [ ] VERIFY no loading errors are printed.
- [ ] `exit`