Revision Table column definition cleanup & Null user support

* Made the Revision table's foreign key to the user table be of the same type as the column in the User table
* Support for compound primary keys (untested)
* Support for null users (Eg: If you have zfcuser.integration => false)