Pluralizes relationships.

This allows more natural sounding names, as Doctrine takes care of the
reverse pluralisation when building entities from the metadata.  For
example,  if we have a one to many relationship between two tables
"blog" and "post" (where one blog has many posts), this patch causes
doctrine to generate the methods getPosts(), addPost(), removePost().
Previously the first method would have been getPost().

Additional support has been added to do the same for many to many relationships.