add $.extend utility method (use the iterative way rather than the recursive one used in both jquery and zepto) to avoid potential exceeds maximum call stack size limit