Added support for constructor injection
There are 5 unit tests that are failing when run against servers older than 2.0 due to server changes that have not been backported to 1.8.5. These 5 unit tests are now skipped when the server is older than 2.0.
Updated MongoServerTests to skip two unit tests when running against a master/slave pair that were failing due to SERVER-2329.
Minor fix to SelectQuery Execute method (use temp variable so _projection isn't overwritten).
Removed Visual Studio 2008 solution file (while you can probably still build the driver with Visual Studio 2008 we no longer support that).
Added change logs and release notes for 1.4.1.
Minor edits to 1.4.1 release notes.
More proofreading of release notes and change logs.
Disabled a harmless warning.
Changed setup for version 1.4.1.4490.
BUMP 1.4.1.4490.
Changed version number to 1.4.2.*.
minor edits in the doc project
fixed bug 449 related to iterating and modifying a list at the same time.
fix issue with Ping iterating over a non thread-safe collection.
Update README.md
Merge pull request #96 from craiggwilson/csharp_448

Minor Threading Fixes.
Fixed CSHARP-447. BsonArray.Contains now returns false instead of throwing ArgumentNullException when called with null argument. Query.All, Query.In and Query.NotIn now handle nulls in the list of values according to functional construction semantics and therefore just skip them. (Not sure why git thinks CSharpDriverDocs.shfbproj is changed, probably because core.autocrlf was not set correctly when it was last changed).
Fixed CSHARP-446. BsonDocument methods GetDocumentId and SetDocumentId have been changed to be temporarily backward compatible with 1.4.0 and earlier. However, these methods were intended to be private, and all IBsonSerializable methods that were accidentally made public have been marked as deprecated and will be made private by explicit implementation in a future release.
Implement CSHARP-451 (Improve deserialization performance by ~22%).

Deserialization CPU performance was suffering because both LookupDiscriminatorConvention and LookupSerializer were being called for nearly every class member. Both functions take out and release the global config read-lock. Profiling showed that around 22% of all CPU time was being spent in ReaderWriterLockSlim.TryEnterReadLock and ReaderWriterLockSlim.ExitReadLock due to these functions.
Fix makes the BsonClassMap and BsonMemberMap cache references to the appropriate IDiscriminatorConvention and IBsonSerializer instances. By doing this, lookups are avoided while maintaining semantic correctness due to the associated BsonClassMap and BsonMemberMap types never changing once constructed. Incorporated much feedback from discussion with Robert to simplify changes.

Other issues addressed:
1. BsonSerializer.Serialize had a bug where a class implementing IBsonSerializable would always be serialized using the IBsonSerializable implemention, even if the implementation was overridden by a registered IBsonSerializer.
2. Modified BsonSerializer to allow only one custom serializer to be registered. This prevents cache consistency issues when a serializer instance is cached within a BsonMemberMap.