Python 3 PasswordField Bug AttributeError encode
I believe the code was correct, but needed to just check for a unicode type rather than assuming one.

The class PasswordHash was inherited from bytes. For python 3 it's wrong because python's 3 bytes not provide "encode" method and this code:

```
class PasswordField(BlobField):
    def __init__(self, iterations=12, *args, **kwargs):
        if None in (hashpw, gensalt):
            raise ValueError('Missing library required for PasswordField: bcrypt')
        self.bcrypt_iterations = iterations
        self.raw_password = None
        super(PasswordField, self).__init__(*args, **kwargs)
```

fails with AttributeError.

For me I make a fix:

```
from playhouse.fields import PasswordField as PasswordFieldBase, PasswordHash


class PasswordField(PasswordFieldBase):
    def db_value(self, value):
        if isinstance(value, PasswordHash):
            value = value.decode("utf-8")
        return super(PasswordField, self).db_value(value)
```
