Tried ANN, and it had no significant improvement over kNN.

Also made some refactoring and a bug fix (forgot
OutputObjectStream.flush().)
Gaaaaahhhhh!  The bug was in the Trainer code.
Fixing it makes the app's capture reasonably well.
Fixed a bug that was making digits '1's to be dropped very often.
Refactoring and source cleanup.
Rewrote QuadrangleFitter to use more conservative algorithm,
as well as many code cleanup.