Fix the issue #3745, the code book generation for OutputCodeClassifier

+ Change the process of generating output code for OutputCodeClassifier. The process is to draw subsets of the exhaustive code book, see [1], multiple times and pick the one that give largest hamming distances between classes.
+ Change the default value of code_size from 1.5 to 1. 1.5 is problematic. For example when n_classes = 3, the size of exhaustive code book is 3, so 1.5 for code_size is not possible.
+ Add test case.
+ Update the document.

[1] Thomas G. Dietterich, Ghulum Bakiri. Solving Multiclass Learning Problems via Error-Correcting Output Codes
Which strategy do you implement from http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume2/dietterich95a.pdf? (Exhaustive Codes,  Column Selection from Exhaustive Codes, Randomized Hill Climbing)? Do we want a separate strategy possibility for each?