SERVER-1105 Use ResourcePattern type when identifying the resource component of required privileges.

This patch has two principal components.  First, it changes the interface to Privilege and
AuthorizationSession to use ResourcePattern in place of std::string for identifying resources.
Second, it examines all call sites of the authorization session interface in commands and
other code to ensure that the correct resource requirements are conveyed to the authorization_session.

Conflicts:
	src/mongo/db/auth/authorization_session.cpp
	src/mongo/db/clientcursor.cpp
	src/mongo/db/commands.h
	src/mongo/db/commands/apply_ops.cpp
	src/mongo/db/commands/cleanup_orphaned_cmd.cpp
	src/mongo/db/commands/cpuprofile.cpp
	src/mongo/db/commands/index_stats.cpp
	src/mongo/db/commands/merge_chunks_cmd.cpp
	src/mongo/db/commands/pipeline_command.cpp
	src/mongo/db/commands/rename_collection_common.cpp
	src/mongo/db/commands/storage_details.cpp
	src/mongo/db/commands/write_commands/write_commands.cpp
	src/mongo/db/compact.cpp
	src/mongo/db/dbcommands.cpp
	src/mongo/db/dbcommands_admin.cpp
	src/mongo/db/exec/stagedebug_cmd.cpp
	src/mongo/db/fts/fts_command.cpp
	src/mongo/db/instance.cpp
	src/mongo/db/pipeline/pipeline.cpp
	src/mongo/db/pipeline/pipeline.h
	src/mongo/db/repl/master_slave.cpp
	src/mongo/db/repl/replset_commands.cpp
	src/mongo/s/commands_public.cpp
	src/mongo/s/merge_chunks_cmd.cpp
	src/mongo/s/shardconnection.cpp
	src/mongo/s/strategy_shard.cpp
Make auth client example a better example of what clients should do

Conflicts:
	src/mongo/client/examples/authTest.cpp
Make auth client example use new form of auth method