add base events class

Hi,

All doctrine projects implements events. A lot of them are similars, but there is no base class defining common Events.

I tried to gathen them all in this PR. I looked into ```CouchDb-orm```, ```doctrine-orm```, ```doctrine-mongodb-odm``` and ```phpcr-odm```. 

I only added events present in all packages, but CouchDB is the only one to not implement some events implemented in every other packages (```postPersist```, ```loadClassmetadata```, ```preFlush```, etc.).
@deeky666 what about making constant names follow PSR rules by using ``Events::PRE_REMOVE`` instead ? What must match the method name being called is the constant value, not the constant name.
And there is no BC concern here, given that these are *new* constants.