Extend deferred initialization to database kind
From docstring:

``` python
    from peewee import *
    from playhouse.proxy import Proxy

    database_proxy = Proxy()  # Create a proxy for our db.

    class BaseModel(Model):
        class Meta:
            database = database_proxy  # Use proxy for our DB.

    class User(BaseModel):
        username = CharField()

    # Based on configuration, use a different database.
    if app.config['DEBUG']:
        database = SqliteDatabase('local.db')
    elif app.config['TESTING']:
        database = SqliteDatabase(':memory:')
    else:
        database = PostgresqlDatabase('mega_production_db')

    # Configure our proxy to use the db we specified in config.
    database_proxy.initialize(database)
```
 > From docstring:
> 
> ```python
>     from peewee import *
>     from playhouse.proxy import Proxy
> 
>     database_proxy = Proxy()  # Create a proxy for our db.
> 
>     class BaseModel(Model):
>         class Meta:
>             database = database_proxy  # Use proxy for our DB.
> 
>     class User(BaseModel):
>         username = CharField()
> 
>     # Based on configuration, use a different database.
>     if app.config['DEBUG']:
>         database = SqliteDatabase('local.db')
>     elif app.config['TESTING']:
>         database = SqliteDatabase(':memory:')
>     else:
>         database = PostgresqlDatabase('mega_production_db')
> 
>     # Configure our proxy to use the db we specified in config.
>     database_proxy.initialize(database)
> ```

`from playhouse.proxy import Proxy` not found any more... It's moved into the peewee module: http://docs.peewee-orm.com/en/latest/peewee/api.html#Proxy

```python
from peewee import Proxy
```

Although you probably want to use instead the `DatabaseProxy`:

```python
from peewee import DatabaseProxy
```
It would be useful in many circumstances to use different database flavors (Sqlite, MySQL, ...) depending on a configuration parameter.

Extending the mechanism of deferred initialization described in:

http://peewee.readthedocs.org/en/latest/peewee/cookbook.html#deferring-initialization

it would be nice to have something like:

```
deferred_db = GenericDatabase()

class SomeModel(Model):
    class Meta:
        database = deferred_db

...
# read config
if config.DB_KIND == 'sqlite':
    deferred_db.setup('sqlite')
    deferred_db.init(config.DB_NAME)
elif config.DB_KIND == 'mysql':
    deferred_db.setup('mysql')
    deferred_db.init(config.DB_NAME, host=config.DB_HOST, port=config.DB_PORT, ...)
else:
    ...
```

or even merge the functionality in the init() method, with a kind keyword argument (which would work when using the GenericDatabase).

Would it be possible or are there any workarounds at this time?
