refs #613 SERVER-8173: add a new IndexPathSet class to make checking if a mod will udpate index more reliable

Conflicts:
	src/mongo/SConscript
	src/mongo/db/namespace_details-inl.h
	src/mongo/db/namespace_details.cpp
	src/mongo/db/namespace_details.h
	src/mongo/db/ops/update.cpp
	src/mongo/db/ops/update_internal.cpp
	src/mongo/db/ops/update_internal.h
refs #613 SERVER-8758 : make IndexSet a set rather than a vector

Conflicts:
	src/mongo/db/index_set.cpp
refs #613 SERVER-8758 - don't go past StringData end since it might not be null terminated
            - fix $ handling in middle of string
refs #613 SERVER-8758 - IndexSet fix for ab vs a