Save best and holdout validation for --oaa, etc

John, I have not finished this yet. 

I just updated code for gd and bfgs, the major revision was to move the accumulation of validation loss to simple_label.cc (output_simple_example), so that higher level reductions do not count these losses multiple times, as the accumulation was originally done within gd.learn. As gd and bfgs calls functions in simple_label.cc, codes therein are updated.

I just finished make it work for --oaa.

I pull this request so you can take a look at the change for gd and bfgs, as well as the implementation for --oaa when you have time. If the latter seems ok,  I believe it is similar for other reductions (I'll continue working on them today).