use uuid type for uuids by default, let the dialect specify whats best

This is for #1112

Instead of forcing char(36) as the data type for uuid go with UUID by default and let the dialect specify what is best. UUID has full support in postgres where it will be both faster, more space efficient and will allow validation. It also works in sqlite - not sure if uuid will provide any benefits over char(36) here. I only had to add a data mapping to char(36) binary for mysql.