Add letor-prepare for preparing traing data.
Add letor-train for letor training process.
Add letor-select for selecting letor features.
Refacter Feature.

Use integer to represent feature instead of enum class.
Add is_valid and read_from_file to Feature.

is_valid function checks if features are valid.
read_from_file function will restore features from file.
Rename MAX_FEATURE_TYPES to MAX_FEATURE_NUM.
Use new feature representation in FeatureManager.

Use Feature::feature_t to represent features.
Break function update into two functions.

Break function update into function set_featuremanager and function
set_features.
Change argument of function get_feature to reference type.
Change the internal feature manager reference to non-const type.
Use '\n' instead of std::endl in FeatureVector.

Also clean up code.
Use Feature::feature_t instead of int.
Add normalizer flag used to create normalizers.

Also clean up code.
Add copyright information for default_normalizer.

Also clean up code.
Add copyright information for normalizer.h.

Update comments.
Update comments for feature.h
Change the argument of set_feature_vector_list.

Change the type to const reference.
Add function train_create_normalized_ranklist.

Clean up code and update comments.
Update APIs of Letor::Internal and clean up code.
Update Letor, clean up code and update comments.
Clean up code and update comments in ranker.h
Update comments in feature_vector.h