Make None a default when initializing SqliteDatabase
If you don't initialize your `SqliteDatabase` instance with a database parameter, then you have to call `.init()` at a later time. By explicitly requiring `None`, it reinforces the idea that the database is not initialized yet, and the actual initialization is happening later in a call to `.init()`. A very clear exception is raised, and a message is logged too if the user forgets to use `.init()`:

```
    raise InterfaceError('Error, database must be initialized '
peewee.InterfaceError: Error, database must be initialized before opening a connection.
```

The above error is IMHO sufficient reinforcement. Why is further reinforcement necessary? You can always subclass it and override

```python
class SpecialSqliteDatabase(SqliteDatabase):
    def __init__(self, database=None, *args, **kwargs):
        super(SpecialSqliteDatabase, self).__init__(database, *args, **kwargs)
```
Instead of me having to do `SqliteDatabase(None)`, can `None` be made a default? I should then just be able to do `SqliteDatabase()`. Currently it raises `TypeError`. It seems needlessly noisy to have to specify `None` explicitly. Thanks.