Better support for UUIDField
Ahh yeah good call, and I should know cause I got bitten by just this issue.

Yeah a PR b great, thx
 Awesome, PR coming shortly :)
 Also there could be an argument for storing as `BINARY` instead of TEXT, but I'd need to think about the edge cases. I'll open a new issue if I can think of a compelling argument
 @coleifer Any idea when this fix will make it into next release? Just got stung by it again lol
 Ahh, dang have I not pushed a release? OK I'll get one out.
 PS - I'm not sure if you use MySQL/MariaDB but I had to modify the UUID type to VARCHAR(255) in order to get it working. Not sure if that matters, it was LONGTEXT before.
 Ah sorry that's my bad, although for indexing purposes it should probably be `CHAR(16)`. I've added `OptimizedUUIDField` and `BinaryUUIDField` into my `peewee-extras` repo, for anyone that wants to store UUIDs in MySQL on a larger scale. It'll be a couple of weeks before the repo is ready for prime time, as I haven't finished adding all the tests yet.
 PS @foxx you may want to add a LICENSE file to peewee-extras, as I'd like to maybe borrow some of those tidbits :)
 @coleifer Yup will do, in a few weeks it will be as clean as [bottlecap](https://github.com/foxx/bottlecap) (travis/coveralls/py2.7/py3.4/100% test coverage etc), will ping you when ready.

As an extension from #780, databases which don't support UUID natively may encounter consistency problems. 

Postgres will correctly handle multiple input variants [[1]](http://www.postgresql.org/docs/9.1/static/datatype-uuid.html), such as
`a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11` and `a0eebc999c0b4ef8bb6d6bb9bd380a11`.

However SQLite, which now uses `TEXT` since #780, does not support multiple input types properly, and will end up with different variants being stored in the backend, rather than being normalised. Other databases, such as MySQL, are not supported at all as they don't have the necessary `field_overrides`.

The most viable fix I can see for this would be;

``` py
class UUIDField(Field):
    ...
    def db_value(self, value):
        if isinstance(value, uuid.UUID):
            return value.hex
        try:
            return uuid.UUID(value).hex
        except:
            return value
```

The above would ensure that the UUID output is always consistent, whilst also allowing non confirming values to be used with `filter()`, e.g. `0f0f0f0f-` 

I'd also like to propose that we add a `field_override` for `MySQLDatabase`, much the same as `SqliteDatabase`.

If you're happy with the above solution, I'll throw up a PR, let me know
