Add flexy data source with 2 strategies

Add FlexyDataSource which uses chainable strategies to acquire a pooled
connection.
Add Retry acquire strategy.
Add Pool size increment on timeout strategy.