Nonsmooth and Smoothing Methods for Nonlinear Complementarity Problems and Variational Inequalities