Ignore MongoId constructor exceptions in IdType

Driver 1.4+ will throw an exception if the MongoId constructor argument is invalid. Preserve existing behavior by ignoring this exception and returning a new MongoId.

Note: while this exception makes sense for write operations (the auto identifier mapping should only be used for ObjectId values), it would be undesirable to propogate it during query preparation. In the latter case, one would expect a query on ID for a non-ObjectId string (e.g. "foo") to return an empty result, not yield an exception because the string could not be converted to a MongoId instance.

See: https://jira.mongodb.org/browse/PHP-554
Do not schedule documents with inconsistent IDs for upsert

Documents using IdType that have identifiers invalid for a MongoId constructor were previously upserted with a generated MongoId, but that generated value was never set on the flushed document. As such, it was impossible to immediately query for such documents after flushing. By refusing to schedule such documents for upserting, the insert logic will ensure the generated MongoId is set on the document and the identity map remains consistent.

This change should not disturb handling of documents with alternative ID types (e.g. CustomIdType, IntIdType).
Test that generated IDs are available after flush (closes #529)

Additionally, ensure behavior is not changed for alternative ID types.
Use consistent types for identifiers in tests

These tests caused exceptions before #529 was fixed. While they now pass, it's a good idea to use the proper types anyway.
Fix persist() loop in GH453Test

Collection::forAll() stops iterating after the first callback invocation returns a falsey value, which mean that only the first GH453ReferencedDocument in each collection was persisted. This caused an error before #529 was fixed, since UoW::registerManaged() would end up using the SPL object hash as the document ID and trigger a MongoException in IdType.
Refactor UnitOfWorkTest and DocumentPersisterMock

Added some additional assertions to the NotifyPropertyChanged test and fixed some code formatting.
Merge pull request #535 from doctrine/gh529

Fix handling of non-ObjectId strings in IntType