clocks: move ccm provider code into higher level functions

There's no reason we can't run an of_clk_add_provider() call before
any of the arrays are initialized since it does absolutely no checking
of the contents of the array, and also pretty much cannot fail anyway.

It is also unlikely that any DT probe functions looking for clock
providers will run BEFORE this code since it's done in .timer_init
which is long before any of this stuff can actually run anyway, so
by the time it pops up, it will be full of valid (or invalid) clocks.

Any errors reported will be exactly the same way as before - there's an
array scan which will pull any erroring clock out and print its id,
although: for each SoC you'll get that error twice for MX51 or MX53
specific clocks, it only fails once.. (i.e. for mx51_clocks_init it
will bitch an arror and inside mx5_clocks_init it will bitch an error
for the same clock).

It may be a better idea to run the array check somewhat after so we
don't double-report the same clock failure.
clocks: move the array scanning to the higher level clock functions

Left a debug opportunity in there, since we don't use pll3_sw provider
id in this experimental kernel branch, we set it to -EFAULT and watch
it "fail". Commented out just for ease of debugging later.
clocks: move mx5 clock array sanity check to debug-only function

Now we don't run over an array of clocks twice (upstream), or even
once (since about an hour behind this commit), if we don't enable
DEBUG at the top of the clocks file.