A cleaner fix for bug #44 (I hope)

In cvmix_coeffs_kpp_wrap, the size of Mdiff_out, Tdiff_out, and Sdiff_out
depend on the size of CVmix_vars%zw_iface rather than CVmix_vars%nlev+1 (to
account for models that allocate memory for vertical data before knowing
exactly how many levels each column will use. (Without explicitly storing
max_nlev anywhere, some columns create arrays of size max_nlev and max_nlev+1
in CVmix_vars but then set CVmix_vars%nlev to a smaller number.)

Two comments:

1) I don't like the kludgy nature of changing CVmix_vars%nlev (twice) in the
wrapped interface; one option would be to add an option nlev argument to
cvmix_put_real_1D.

2) This needs to be done in all the other modules as well.