Implementing "any primary key" feature and default redering
This PR changes the way that the `types::primary()` builder works and adds a `primary(bool)` function to the Type pattern. The `PRIMARY` base type still exists, but is handled seperately, for Pg reasons (should be removed next version). All other types that use the `primary(...)` function will be able to become `PRIMARY KEY` in the generated SQL. Additionally this PR fixes the way that `WrappedDefault` values are encoded. i.e. it is now possible to properly specify a default value that is then mapped into the apropriate type.