Support for recursive many-to-many relationships

Using recursive many-to-many relationships resulted in a "duplicate column name" error. I've fixed the issue by simply appending "_1" and "_2" to the column names of the many-to-many table if the source and destination entities are equal.