Performance enhancements to SqlServerCompact provider

and a couple of small bug fixes

All SQL Compact related tests pass

For the remaing method:
        QueryCacheById(this SqlCeConnection connection, IEnumerable<string> keys)
I could not see any perf benefit

QueryCacheByExpiration, QueryCacheByType<T>, DeleteAllFromCache<T>, DeleteExpiredElements : No supporting index available, must leave as is, causing table scan

DeleteAllFromCache: Will be slow with many cache items, probably doing DROP TABLE and then call CreateCacheElementTable will be quicker (needs to be tested)

I have trouble understanding Vacuum method? Is the iniention to delete some rows and the call SqlCeEngine.Shrink() to reclaim disk space? Keep in mind that SQLCE support Autoshrink by default.