SQLite in-memory database connection management

I did required changes to get the following works

1- SQLite in-memory database needs to use a shared connection and keep it openned during the database life-time
2- Dbupgrade can perform the upgrade on a passing connection without closing the connection if it is already openned and let the consumer of dbup decides to close/dispose the connection.

Comments: 
* To get this works, I wrapped the original connection so that it does not require lots of changes to current TransactionStrategies mechanism .
* I do not see any value to introduce a connection strategy concept