CSHARP-603: Make MongoCredentialStore helper class internal and standarize on Credential (no "s") for singular and Credentials for plural.
Fix CSHARP-637: Fluent Lambda Expressions Don't Resolve Interfaces

    Accidental regression from https://github.com/mongodb/mongo-csharp-driver/commit/5a62ca86fba984803e445a1d182bc125a56c7714 caused generic interface member mappings to throw.

    Update - added code to handle non-trivial edge case of explicit interface implementations caught during code review of JIRA-637 and rebased off of latest master changes.
minor code reformatting.
code review comments.
Add .Explain() extension method to IQueryable<T> to explain Linq queries.

The extension method operates on IQueryable<T> and can therefore not operate
on .Max, Min, First, Last or any methods that return a scalar. It can also
not operate on .Distinct queries since they call a specific method on the
collection and don't give us access to any cursor.
Added .WithIndex method to Linq queries for index hinting.

.WithIndex can take a string or a BsonDocument as an index hint.
It's an extension method on IQueryable<T> and returns IQueryable<T>.
Example:

var results = _collection.AsQueryable<T>.WithIndex("foo").Where(x=>x.Name == 1).ToList()
CSHARP-667, CSHARP-668: added Explain and WithIndex extension methods.
CSHARP-658: Add support for sending client SSL certificates.
fixed failing tests to not rely on runtime equivalence of database performance.
CSHARP-658: Added a test certificate so SslSettingsTests pass on Mono also.
CSHARP-670: ObjectId constructor and Pack method should throw ArgumentOutOfRangeException if machine or increment values are invalid.
Merge branch 'master' of git://github.com/mongodb/mongo-csharp-driver

Conflicts:
	MongoDB.Driver/MongoDB.Driver.csproj