If custom primary_key is used, .save() with no PK doesn't work properly
You need to save with `force_insert=True`.

http://docs.peewee-orm.com/en/latest/peewee/models.html#id3
 I can't believe I missed that in the docs, my bad :( Thanks for the reply!
 Fwiw, do you think it's worth patching so that an exception is raised if this situation is ever encountered? Although it's documented, it would be nice to have an exception raised in the event of human error maybe.
 This definitely needs exception or some kind of logging, failing silently is not cool. It *does* work, Peewee just assumes if the PK is present that it should do an update instead. Peewee is an active-record ORM. This is fundamental stuff.
The following code does not raise any exceptions, but it doesn't save to the database either.

``` py
import peewee
import random

db = peewee.SqliteDatabase(':memory:')

class Message(peewee.Model):
    class Meta:
        database = db
    content = peewee.TextField()

class MessageCustomPrimaryKey(peewee.Model):
    class Meta:
        database = db
    id = peewee.TextField(default=1, primary_key=True, unique=True)
    content = peewee.TextField()

db.create_table(Message)
db.create_table(MessageCustomPrimaryKey)

# this works as expected
m = Message()
m.content = 'hello'
m.save()
assert m.id == 1
assert Message.select().count() == 1

# this does not
m = MessageCustomPrimaryKey()
m.content = 'hello'
m.save()
assert m.id == 1
assert MessageCustomPrimaryKey.select().count() == 1
```

Although creating objects in this pattern isn't very clean, it was a surprising result, because if the record was not saved to the backend then I would expect some sort of exception to be raised.

If I remove the custom `id` primary_key field, the problem goes away. I've trawled through the code and documentation, but cannot find anything to explain why this is happening.

Thoughts?
