Genric ID support

This new way allows more then just int id's, you can now use Guids,
Longs etc and it will correctly get set as the primary key for your
table.