Added auto-complete to "give" ConCommand

Auto-completion has been added to the "give" ConCommand as it exists in L4D2. Classnames that begin with `item_`, `weapon_` and `ammo_` are added to the autocomplete.

To get all entity factory class names, this required exposing the actual factory dictionary in the `IEntityFactoryDictionary` interface (added `GetFactoryDictionary` method, hence the `util.cpp/util.h` changes)

--

In addition, un-necessary `sv_cheats->GetBool() == true` checks have been removed from the following ConCommands due to them having the `FCVAR_CHEAT` flag:
* `fov` (added `FCVAR_CHEAT` flag)
* `give` (added `FCVAR_CHEAT` flag)
* `noclip`
* `god`
* `setpos`
* `setang`
* `setpos_exact`
* `setang_exact`
* `notarget`
* `hurtme`