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_` and `weapon_` are added to the autocomplete. The classname prefixes are customisable via the `s_pEntityPrefixes` array in `client.cpp`.

To get all entity factory class names, the actual factory dictionary has been exposed on 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`