Extract client-only parts of init_keys()
init_keys() is one of the functions that's reachable from way too many functions. This appears to be happening because ip_address_changed can call init_keys(). But really, it only wants to call the client-only parts of init_keys(). So splitting them out into another function would help reduce the blob size.
See also legacy/trac#16695 (moved) and legacy/trac#16762 (moved).