Allow specification of the order_column to remove need for a primary key

Instead of relying on a table to have a primary key, we now accept the order_column option and put that everywhere. This kind of uncomfortable state about the migration now needs to be given to everyone and I think an appropriate place is the migration, since most objects in the system have access to it and they all need to agree on the value. This required passing the options down a couple more objects for the Migrator creating the Migration to have access, but I think thats acceptable for this increase in functionality.