Update interface for double diffusion mixing

Just like the previous commits, except this one also required a change to the
driver for double diffusion because I previously wasn't allocating any memory
for zw_iface. Basing dimension() of Mdiff_out on the size of zw_iface might not
be the best plan; I may end up adding max_nlev to cvmix_data_type or requiring
max_nlev as an intent(in) to all the wrapped interfaces.