Some reorganization to allow override of factories

The factories in Repository.php previously could only return
the classes that were hard coded into them, this was problematic
in islandora when we override repository.php and want the factories
to return some overriden classes. Fixed this by putting the classes
in variabled that subclasses can manipulate.
removed woot.php
Allows for Datastreams and Objects to be serialized, other issues with serialization may remain in special cases such as file content for datastreams.
NewFedoraObject now allows for its ID after being instantiated.
Test to attempt to use autoloading with tuque and Drupal.
Forgot Cache.php
NewFedoraObject update PID references in default datastreams when modified.
NewFedoraDatastream now allows for a conditional copy on setContentFromFile, required in cases where the file need to persist for a longer duration than a single request.
Fixed automatic deletion of temp files.
NewFedoraDatastream allows the caller to manage the lifetime of the file when calling setContentsFromFile(), fixed incorrect use of internal structure.
Revert "Test to attempt to use autoloading with tuque and Drupal."

This reverts commit 0452215fe257869a92b036b8efa923aa898046dd.

Conflicts:

	tuque.info
Updated from privet to protected
Merge branch '1.x' of github.com:Islandora/tuque into 1.x-tuque-hooks

Conflicts:
	Repository.php
Modified the factory functions.

Modified the factory functions in tuque so they can be overriden by 
classes that are calling them.
Merge pull request #31 from jonathangreen/1.x

1.x
Merge pull request #1 from jonathangreen/1.x-ingest

Revert "Test to attempt to use autoloading with tuque and Drupal."
Merge latest
conflict error no longer created when serializing and unserializing an FedoraObject then modifying it.
Provided a wrapper to DateTime::format
Prevent adding duplicate models.