add navigable map and navigable set implementation
make navigable set inherit ienumerable, and icollection