Adaptions to better match MongoDB csharp driver + New Query API + Additional unit tests

-) Fixed date/time serialization bug (were stored as local and incorrectly interpreted as UTC during load)
-) Added several new unit tests for BSON serialization
-) Added support for generating a new BsonId (via BsonOid.Generate) 
-) Added support for storing objects of named types and not only anonymous types.
-) Added helpers for generating query objects. This is now much easier thanks to the methos Query.EQ, Query.LT, Query.GT, Query.GTE, Query.In, Query.NotIn, usw. (all with corresponding unit tests)
-) Added typesafe helpers for generating query objects using expressions - e.g. Query<Customer>.EQ(x => x.Age, 27)

-) Improved serialization of types to use a 'class map' as cache.
-) Refactoring of BsonValue to include only the BsonType and value, but not the key anymore. This greatly simplified the serialization (BsonDocument and BsonArray classes) 
-) Adapted class names to match the MongoDb Csharp ones (e.g. 'BsonDocument' instead of 'BSONDocument')