Avoid marking columns in composite keys unique or primary.

Previously columns in a composite key (e.g. KEY
`my_compound_key` (`columnA`,`columnB`)) would have a composite key
generated for them but would *also* have each individual column marked
as unique; this obviously causes problems when trying to insert into the
table.

While fixing this, I noticed that the same issue would occur for primary
keys so I have also avoided marking these as primary if they are part of
a composite key.
Merge branch 'compound_keys'