add is_distinct to type_list
bug in index_of
implement meta::type_list::find
more tests
fix failing test
index_of contract assumes that type_list contains searched type