make _.extend() recursive, which is a much more useful implementation for extend