Moved out the cluster switch code to a more appriopriate location as
cluster switch doesn't have a direct dependency on CPU_FREQ. The callers
of cluster_switch will now have to ensure proper locking is done on
their end.
Also make sure clk rates are in the correct range on a cluster switch
request.