Holdout valid

Use a portion of data as holdout set for testing only. Useful to select the best model across passes. Have a better idea when the model overfits in multiple passes.

Whenever --passes is >1, *by default* vw prints out holdout validation loss on later passes.

--holdout_period arg: specify holdout_period, meaning one in every arg examples is used for test only. By default it is set to 10. For example, if there are 20 examples, then the 10th and 20th example is used for test only.

The holdout set is consistent across passes.

--holdout_off: turn off holdout validation, so that one does not lose 10% (by default) of the data for training. All printout losses are progressive validation loss. 

When holdout is on, the output looks like 
```
average    since         example     example  current  current  current
loss       last          counter      weight    label  predict features
5.390109   5.390109            3         3.0   2.0000   0.5267        5
0.209017   0.209017            6         6.0   2.0000   1.1834        5 h
0.456507   0.951488           11        11.0   3.0000   2.7605        7 h
1.306819   1.944553           22        22.0   3.0000   2.9959        7 h
1.960639   2.614460           44        44.0   3.0000   3.0000        7 h
2.381127   2.773581           87        87.0   2.0000   2.0000        5 h
2.580477   2.779828          174       174.0   2.0000   2.0000        5 h
2.680154   2.779831          348       348.0   2.0000   2.0000        5 h
2.729993   2.779831          696       696.0   2.0000   2.0000        5 h
2.754912   2.779831         1392      1392.0   2.0000   2.0000        5 h
```
'h' at the end indicates the reported errors at the same line are from holdout test, instead of progressive validation loss( e.g. in the first line)
in this case the trained model converges and overfits, thus generating bad results on the holdout set. In some cases the holdout test error would go up and down.

We are also working on --save_best_model. Two possible strategies: Strategy 1: maintain a 'best_so_far' for holdout validation loss, save the model whenever a better one is achieved. By the end of user specified passes, the best model along the way is maintained.
Strategy 2: early stop when there is no improvement in k (maybe user specified) passes.

This is like an efficiency vs effectiveness tradeoff, which one do you guys think is better? (or both?)