New implementation of ChangeTrackingCollection.GetChanges
- Only changed entities are cloned. This seems more memory efficient compared to the original method which would first clone everything then chop off the unchanged nodes
- Doesn't remove items from collections and doesn't nullify any reference navigation props. Both operations may cost us performance if the setters aren't trivial, may even be dangerous in terms of possible side effects. E.g. confuse the automatic navigation property fix-up mechanism (if the client implementation provides one)

The main idea:
1. First inspect the source collection in read-only mode
2. Collect necessary information about unchanged nodes
3. Serialize the source collection skipping the unchanged nodes
4. Deserialize
added Test for multiple m-1-m childs in multiple states (added, modified)
added fix for recursion of m-1-m childs, avoid childs in trackingstate Modified to run in recursion path for added

Increased test coverage:

Updated Apply_Changes_Should_Mark_Unchanged_Order_Unchanged_Customer_With_Addresses_Mutliple_Added_And_Modified (succeeded)

Added Apply_Changes_Should_Mark_Unchanged_Order_Unchanged_Customer_With_Addresses_Multiple_Added_And_Modified_Deleted (succeeded)
Cleaned up this test:
Apply_Changes_Should_Mark_Unchanged_Order_Unchanged_Customer_With_Addresses_Mutliple_Added_And_Modified (succeeded)

Added this test:
Apply_Changes_Should_Mark_Unchanged_Order_Unchanged_Customer_With_Addresses_Multiple_Added_And_Modified_Deleted (succeeded)
Added test:
Apply_Changes_Should_Mark_Unchanged_Order_Unchanged_Customer_With_Addresses_Multiple_Added_And_Unchanged

Fails with InvalidOperationException:
Attaching an entity of type 'TrackableEntities.EF.Tests.NorthwindModels.CustomerAddress' failed because another entity of the same type already has the same primary key value.
Fixed failing test:
Apply_Changes_Should_Mark_Unchanged_Order_Unchanged_Customer_With_Addresses_Multiple_Added_And_Unchanged

Added DeContextExtensions.ApplyChangesOnCollectionProperties method to process Added items before others.
Merge branch 'alt-GetChanges' of https://github.com/azabluda/TrackableEntitiesContrib into azabluda-alt-GetChanges
Merge branch 'azabluda-alt-GetChanges' into develop
Added failing test:
Apply_Changes_Should_Mark_Unchanged_Order_Modified_Customer_With_Addresses_Multiple_Added

Throws InvalidOperationException:
Attaching an entity of type 'TrackableEntities.EF.Tests.NorthwindModels.CustomerAddress' failed because another entity of the same type already has the same primary key value.
Fixed DbContextExtensions.ApplyChanges so that test now passes:
Apply_Changes_Should_Mark_Unchanged_Order_Modified_Customer_With_Addresses_Multiple_Added
Added failing test:
Apply_Changes_Should_Mark_Unchanged_Order_Deleted_Customer_With_Addresses_Multiple_Added

Throws InvalidOperationException:
Attaching an entity of type 'TrackableEntities.EF.Tests.NorthwindModels.CustomerAddress' failed because another entity of the same type already has the same primary key value.
Fixed failing test:
Apply_Changes_Should_Mark_Unchanged_Order_Deleted_Customer_With_Addresses_Multiple_Added

Added an exception handler to DbContextExtensions.ApplyChanges for when a Deleted parent has multuple added children, which throws an InvalidOperationException stating this condition is not allowed.
Added test:
Apply_Changes_Should_Mark_Modified_Order_Unchanged_Customer_With_Addresses_Multiple_Added, plus additional related tests.
Corrected failing test for EF5:
Apply_Changes_Should_Mark_Unchanged_Order_Deleted_Customer_With_Addresses_Multiple_Added.

Removed condition in catch for specific error message, because it would not work for localized messages.
Updated assembly version to 2.2.0.
Generated Nuget packages for v 2.2.0.
Updated ReadMe.txt for v 2.2.0.
Updated ReadMe.txt to include source symbol server location.
Merge remote-tracking branch 'upstream/release-2.2.0' into develop

Conflicts:
	Source/Tests/TrackableEntities.EF.5.Tests/NorthwindDbContextTests.cs
	Source/TrackableEntities.EF.5/DbContextExtensions.cs