new feature unlearning
test compile ok, yet it does not success
append core/unlearn
add recommender_storage_base.hpp
Use unordered_map in inp function of local_storage instead of vector

The new key_manager uses unordered_map for id2key instead of vector.
We need to use unordered_map in inp method as the same way to calculate scores for all labels.
Write test for inp method after clear
Fix inp method for local_storage_mixutre same as local_storage
new feature unlearning
test compile ok, yet it does not success
Use unordered_map in inp function of local_storage instead of vector

The new key_manager uses unordered_map for id2key instead of vector.
We need to use unordered_map in inp method as the same way to calculate scores for all labels.
Write test for inp method after clear
Fix inp method for local_storage_mixutre same as local_storage
refine test in classifier
Do not show "null" when optional value has no value in `to_json` method
delete_label should only be expect deleting the label
clear() in nearest_neighbor should clear `unlearning` too
use update for lof
key_manager should pack/unpack `next_id_`
cpplint ok
delete_class -> delete_label