Make training iterations 0-indexed to display training loss in 0th iter

This PR makes the training iterations 0 indexed so that the loss is displayed in the 0th iter (if display is set), which I think makes sense now that we display the test outputs on the "0th" iter.  It also makes the logic a bit cleaner/more natural (IMO), e.g. we can just use the one `TestAll` call inside the training loop rather than having a special one before.  I personally like the semantics better -- the iteration number is the number of times the weights have been updated.  Which is actually how the snapshots behaved before, so snapshots should be exactly the same (assuming you use a random seed and all other training inputs are the same), but now the loss displayed as "Iteration 20" will be the loss that used to display as "Iteration 21".

Any thoughts, @Yangqing or anyone else?
display & param.debug_info()

May be faster than ?: