Allows Discriminators in relationships

- Refactor hasMany & hasAndBelongsToManyRelationship