Making InMemoryTableStorageProvider more consistent with TableStorageProvider
Fixing spacing
Storing exception to throw instead of list of exceptions
Merge pull request #27 from dontjee/MakeInMemoryTableStorageProviderMoreConsistent

Make in memory table storage provider more consistent on when exceptions are thrown.
fix order of execution for actions on a table

TableStorageProvider should execute operations on a table in the
order they occurred.
fix deletion from non-existent table

According to an existing integration test,
Hyde should ignore a delete failure that occurs
because the target table does not exist.

That integration test was passing when run against developer storage,
but failing when run against Azure Storage proper.
Merge pull request #29 from mmcgill/fixes

Two bug fixes
new MemoryTableContext: add/get item

The implementation of the existing MemoryTableContext
has, over time, become unnecessarily complicated.
That complexity will make it difficult, in the future,
to add support for Entity Group Transactions.

With these things in mind, we start a fresh implementation
of ITableContext. This commit starts with adding and
retrieving individual items.
ensure thread-safety

We need to support concurrent calls to Save() from
different threads. We do so by ensuring that
all access to shared data structures is done in critical sections.
throw exception when adding duplicate item
implement GetCollection<T>(string,string)

To efficiently support returning a single partition, we
introduce an internal Partition class to represent
the contents of a partition.

This has the added benefit of allowing us to easily replicate
the same level of lock granularity that Table Storage provides.
implement dynamic GetItem/GetCollection(string,string)
updating entities
implement Upsert
implement Delete()
fill in missing pieces, get all tests to pass

The old TableStorageProviderTests didn't actually test the
correct behavior in many cases -- an operation's effects should
not be visible until it is executed when Save() is called.
We update the tests accordingly.

We also fill in the remaining methods of NewMemoryTableContext,
and make a few fixes to handle the last few failing tests.
remove old MemoryTableContext
rename NewMemoryTableContext
suppressing bogus code analysis errors
Merge pull request #31 from mmcgill/InMemoryRewrite

Rewrite MemoryTableContext to act more like AzureTableContext