Lazier Msf::Framework#events

MSP-9228
Move Msf::FrameworkEventSubscriber to its own file

MSP-9228
Make Msf::Ui::Driver a model

MSP-9228

Rename Msf::Ui::Driver to Metasploit::Framework::UI::Driver and have it
subclass Metasploit::Model::Base so it can use an attributes Hash for
 #initialize and move away from having #initialize with side-effects in
its subclasses.
Extract Rex::Ui::Text::Shell::InputShell

MSP-9228
Lift Rex::Ui::Text::Shell out of Rex

MSP-9228

Rex::Ui::Text::Shell uses a Msf::Framework instance, but Rex shouldn't
know about framework, so Rex::Ui::Text::Shell should actually be in the
Metasploit::Framework namespace.  All other moves occur because they are
dependent on Rex::Ui::Text::Shell.
Add missing constant qualifier

MSP-9228
Extract Metasploit::Framework::UI::Text::DispatcherShell::CommandDispatcher

MSP-9228
Merge branch 'feature/show' into feature/exploit
Move Command/CommandLineInterface/Console under UI

MSP-9228

Since Metasploit::Framework now has a UI namespace from the Rex::Ui
moves, put all the UI code in Metasploit::Framework under
Metasploit::Framework::UI.