Use singular form of field names for add/remove methods

Introduces a dependency on doctrine/inflector ~1.0
Refactor generateDocumentStubMethod()
Merge pull request #627