Primary key is first; Mark unique attribute - U, primary key - PK, foreign key - FK

Rebased against master
I'd suggest this instead:

```ruby
cols = model.columns.collect { |column| new(domain, model, column) }
primary = ActiveRecord::Base.get_primary_key(model)
cols.reject!{ |column| column.name == primary }.sort.unshift(primary)
```

The main difference is using `ActiveRecord::Base.get_primary_key` which has a slight benefit in that it doesn't change between Rails 3.x and 4.x, which makes this a bit more forward-flexible. Thoughts?