Moved the module loading logic to a separate class
Implemented cmdlets as scoped items

For the upcoming DLL-module support we need cmdlets to be
available only in specific scopes, i.e. if they are local in a module.

To do this, I introduced CmdletIntrinsics that provide access to a
SessionStateScope with CmdletInfo.
I moved existing functionality out of the CommandManager, who shouldn't
handle this anyway.

The still existing `ImportModules` mehtod in the CommandManager is a
workaround leftover until the real module support for binary modules
is finished and is able to be used from the LocalRunspace.

All tests work with this commit.