Caching support + Postgres LINQ count fix (again).

Added eager, lazy and lookup cache.
Notifications are now synchronized with dispose on current server.
This fixes sync lag on current server.

Fix again for array_upper and context.
Need to use it for parameters since otherwise it will not work as expected on Postgres version without named parameters.

Current cache renamed to WeakCache.
Added LookupCache which uses MemoryCache and it's configuration.
Added EagerCache which keeps data source up to date.
Added LazyCache which refreshes data source if it's out of sync.

Guard for broken transactions - keep in transaction as true if transaction is broken.
Transaction will become broken on database exception.
Currently database projects reference domain implementation (instead of interface) since it's not clear wheater Notify method should be part of public interface.

TODO: Implement missing LRU cache
TODO: promote IEagerNotification to interface project