Significant restructuring of SmoothNet class.

Rewrote much of SmoothNet.m to permit penalization of higher-order
curvature following a general approach based on finite differences.
Added a "rectified huber" activation function that reduces some of the
jitter caused by non-differentiability in the now-common rectified
linear activation function. Also wrote a basic wrapper
(train_smoothnet.m) that trains a SmoothNet instance on some given
training data, with the intent of exposing parameters relevant for
training.