Added ability to explicitly set foreign key name. Reason: Oracle foreign key max length is 30 characters.

Also refactored the generation of foreign key name to ForeignKeyConstraint class.