Performance enhancements to SqlServerCompact provider

+ a couple of small bug fixes

All SQL Compact related tests pass

For the remaing methods:
        QueryCacheById(this SqlCeConnection connection, IEnumerable<string> keys)
- 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

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.