database: permit forward declaration of tables
table/first!: did it the other way around
table/key: the main key is always the first attribute
table: make table creation more straightforward