Add support for forward references

Fixture definitions with unmet references can now be cached and added to
subsequent load operations.  This allows bidrectional references in
separate files, as well as any other situation in which there is no
well-defined linear order to load the fixture files in.

In order to not change the current default behavior from what people are
used to a flag set by enableForwardReferences() has been added.

Since with this on the loader no longer throws an exception on an unmet
reference, a new method getIncompleteInstances() has been introduced.
This can be called at the end of a fixture loading run to get
information on those fixtures that were never completed.
Record deferred instances

If a fixture references a property of a fixture defined in the same
file, instantiation of that object will be deferred until the referred
to object has been persisted. (The assumption is that the data you are
trying to reference is some sort of entity id).

After the first persist you could then run `Base::load()` to process
the incomplete instances to fill in the blanks and then you can
persist them again.

If you require a more stringent definition of what fields qualify you
may override `Base::refersToPersistedId($reference, $property, $data)`