Extending PooledDatabase to optionally wait before throwing the "Exceeded maximum connections" exception
Well, theoretically you could implement this yourself by putting some kind of polling around the connect method. I think it'd require some re-architecting to get this working more generally. I'll think about it.
 I've added this feature. You can now specify a `timeout` when instantiating a subclass of `PooledDatabase`. To block forever simply set the timeout to zero.
We need to extend the Peewee's pool implementation with the timeout option which would allow to wait some time for connection when a pool is full instead of always throwing an exception immediately.  The aim is to do it "the right way" and have this change merged upstream. 

Problem is, it's hard to do locally in playhouse/pool because all calls to `_connect/_close` are protected with the `self._conn_lock` in the parent Database class and in ExecutionContext from the main module, so we can't wait inside `_connect` without manually releasing this upper level lock which doesn't look like a good solution.

Because this seemingly local feature could require refactoring in the main module we'd like to ask for your feedback first on how you see it implemented properly, or even see it in Peewee at all.

Thanks.