Code First: Adds configured column name convention and function/parameter name uniquification.

- Ensures that all by-convention parameter/function names are uniquified.
- Changed by-convention metadata builder to use store columns instead of CSpace properties for seeding parameter names and data types.
Updating version to Alpha3
OSpaceForAll (Simplify Database/Model First metadata caching to enable o-space caching)

This change simplifies the way CSDL/MSL/SSDL from an EDMX is cached by caching the MetadataWorkspace instead of the item collections. Since MetadataWorkspace already supports o-space caching for Code First this means that Database First and Model First now get o-space caching.

This change also addresses two pain points for Database/Model First metadata caching. First, the cache key no longer contains the store connection string which means that cases where the same model is used against different servers will now benefit from caching. It also means that things like using MARS for one connection but then not for the next won't cause a cache miss.

Second, the timer thread that attempts to remove unused item collections has been removed. Workspaces are now never released (just as they never are for Code First) which means that the case where a server idle for 5 to 10 mins would have metadata purged will not not happen. It is still possible to clear the cache by calling MetadataWorkspace.ClearCache(), so any system using large numbers of different models in the same app domain can still do cleanup. We can also enhance this to clear only certain workspaces if user feedback indicates that this is necessary.

I had to change the way the VB tests initialize since they were actually using CLR types from the C# tests for initialization and then CLR types from the VB assembly for running the tests. This was quite bizarre and probably only happening by accident.
AGrandDayOut (Use Code First type information for o-space loading)

This change extracts the o-space type loading functionality so that it can be used independently of where the CLR types actually come from. This allows Code First to use its knowledge about CLR types to setup the mapping without needing to do any assembly scanning or type matching. This provides a small perf benefit for creating Code First context instances.

This change also allows types in the same assembly with the same name but different namespaces to be used with Code First. Nested types are not yet supported but this change also paves the way for Code First with nested types.
Updated test by calling SetInitializer<>(null) to avoid creating database
ExecutionStrategy polishing:
 * Renamed IExecutionStrategy.SupportsExistingTransaction to RetriesOnFailure
 * When ExecutionStrategy is enabled for nonbuffered queries an exception is thrown now
 * ExecutionStrategyResolver.GetService now throws for null ExecutionStrategyKey
 * DefaultSqlExecutionStrategy implements IExecutionStrategy instead of deriving from ExecutionStrategy as it has different semantics
 * Made BufferedDataRecord._fieldNameLookup initialization lazy as it isn't always needed
 * Corrected some XML comments
Correcting unit tests namespaces.
Moving unit tests to the right test classes.
Unit test refactoring:
	* Turned on Warnings as Errors for test projects
	* Separated ValidationTests
	* Removed ValidateMassage uses
	* Used more constants in AssemblyTests
	* Removed the parameterless test constructors from AssociationType,  EntityContainer, EntityType and EdmFunction as it makes debugging unit tests harder
Removing references to internal bug databases
Codeplex issue #287: SQLCE provider doesn't specify type for string and binary parameters
Running test code for Codeplex287 with RunInSqlCeTransaction to avoid impacting other tests.
OpennessFactor(ies) - adding factory methods to enable creating functions publicly
Functional and unit tests for AsStreaming methods.
Converting value of @@IDENTITY from numeric to int/bigint to avoid table scans
ACompactPull (Pull request from ErikEJ to fix SQL Compact perf issue: CodePlex 857)

The actual fix submitted is a one line change to the SQL Compact provider to add a cast as described in the bug. I verified that we have functional coverage for this code path and then also did a little bit of refactoring so that I could add unit tests.
Adding ExecutionStrategySupport to DatabaseTableChecker
Revert "Removing references to internal bug databases"

This reverts commit 1baa92bd26268f777d25f946a8ee93cfb45daf74.
Fix for #902: General performance regression introduced by changeset f15fb3b6614e

Problem: In fixing #849, perf regressed because certain metadata collections never go read-only and so the fast-lookup-by-identity dictionary was no longer being built.

Solution: Revert the fix for #849 and change MetadataCollection so that it invalidates the internal cache when, either:
1) An item is removed.
2) An item identity is changed (currently we only need to worry about EntitySet and EdmMember).

The identity cache is now built lazily so that it is only built/rebuilt the first time it is needed.

Verification: David has tested this change with various regressed perf tests and determined that we are now either as fast or faster than before the regression.
Adding AddExecutionStrategy sugar methods to DbConfiguration.
Two of the overloads don't need the provider invariant name as they use DbProviderNameAttribute on the types implementing IExecutionStrategy.
Also added this type of overloads to other sugar methods that use provider invariant name for consistency.
This makes SqlAzureDbConfiguration redundant.
Renamed ExecutionStrategyResolver to DefaultExecutionStrategyResolver
Fixed property naming on ExecutionStrategyKey