Add support for ManyToMany Criteria

This replaces https://github.com/doctrine/doctrine2/pull/773

It adds support for ManyToMany but also do an efficient filtering instead of loading the whole collection. I think it can also benefits from https://github.com/doctrine/doctrine2/pull/882 when this one get merged.