totally refactored the ClassMetadata class to store all mappings in a single array

this PR came out of http://doctrine-project.org/jira/browse/PHPCR-79
in order to make the implementation of a type guesser easier (https://github.com/sonata-project/SonataDoctrinePhpcrAdminBundle/issues/56)

please review all the changes in the tests as they highlight the BC breaks. one BC break where I am not sure is that we apparently used to allow overriding identifier mappings. that being said .. the sandbox tests run through fine with these changes.