Add a class for generating random identifiers

Will be useful for all kinds of things, but brought about in discussions
specifically for Util::EXE in #2037.
Make first char's character class configurable
Store inverted hash for better lookups

Also clarifies comment about infinite loops
Speed up msfcli help

If the user only wants to see help, then no point to load things
that will actually never be used by msfcli.  Only rex is needed.
Land #2147, msfcli help optimization
Land #2087, @egypt's random ID generator