Changed client IDs from incremental to random

This makes it practically impossible to spoof another client by guessing
its ID and sending that to the server. The crypto module is used for
generating crypto-strong Base64 strings, which are then used as keys in
the clients object. CIDFct is used to shorten the IDs for readable logging.