An Introduction to Nonsmooth Analysis