Let classifier_base access storage via mixable model
Make member variables of classifier_base private
Make get_storage() public.

Because we want to use it from driver.
Remove mixable model of classifier from driver.
Remove unnecessary comment
Let nearest_neighbor_base have a table through a mixable
Change the argument type from pointer to reference
Let driver use a mixable table in nearest_neighbor_base
Move some initialization code to member initializers
Add mixable_bit_index_storage and use it from lsh and minhash recommender
Add mixable_inverted_index_storage and use it from inverted_index recommender
Add mixable_lsh_index_storage and use it from euclid_lsh recommender
Remove mixable models from recommender driver and use those in algorithms.

This change removes public APIs of recommender_base for accessing internal storage (or table).

Note: anomaly::lof_storage has not adapted to this change yet: I wrote workaround.
Note: recommenders still use diff of type std::string. We should fix it.
Rename anomaly_base::register_mixables_to_holder to register_mixables and use same argument type as those of other algorithms
Move recommender of lof from storage to algorithm and separate MIX operations of recommender and lof
Add mixable_lof_storage and use it from lof instead of mixable_anomaly_storage
Remove mixable of nearest_neighbor table from light_lof.

Instead now nearest_neighbor table is MIXed via mixable table owned by nearest_neighbor itself.
Remove anomaly_storage_base
Make bit_vector msgpack-serializable
Use bit_table_t as the diff type of bit_index_storage