646: toArray() fails to recognise Primary Key as DateTime

Task-Url: https://github.com/propelorm/Propel2/issues/issue/646

fixes #646

Added check for object in InstancePoolTrait to fix problem with DateTime
Object as PrimaryKey during call of save.

Changed build of $alreadyDumpedObjects in toArray method to allow DateTime
as PrimaryKey. Used hashCode() method for array key instead of getPrimaryKey() function.
Fix issues #676, #668, #694

Fix #676, #668 and #694 plus minor fixes on Propel commands.
update minimum requirements for symfony libraries

fixes #699 #698 #626
Propel2-619 Propel Query limit(0) not working

changed default value for limit to -1 in order to allow limit clause with 0.
Fixed some unit tests which failed because they expected a default value for limit with 0. Changed this to -1 because otherwise we can't use limit(0) clause.

fixes #619
Update database.dtd

Added missing reference of attribute `allowPkInsert` in the `table` element.
Also allow `behavior` to not have `parameter` children, like in timestampable behavior.
Made config file optional
Update database.dtd

added `vendor` child element for `index`
Made runtime.connections, runtime.defaultConnection, generator.connections and generator.defaultConnection optional
Merge pull request #700 from nymo/fix-699-698-626

update minimum requirements for symfony libraries to v2.4
Merge pull request #695 from cristianoc72/config-issues

Fix issue #676 and #694
Merge pull request #684 from nymo/fix-646-toArray-DateTime

Fix 646 to array date time
Merge pull request #701 from nymo/Propel2-619

Propel2-619 Propel Query limit(0) not working
Merge pull request #702 from sbarex/patch-1

Update database.dtd
Merge pull request #703 from mpscholten/optional-config-file

Optional config file and connection params. Fixed #680, #679.
Update ObjectBuilder.php

Add `@throws` phpdocs in enum getter/setter.
Update QueryBuilder.php

Add `@throws` phpdocs for `findPkSimple` and `filterByXXX`
Fix issue #697

Fix a problem in parsing xml configuration file.
Adjust Propel Configuration TreeBuilder to correctly parse associative arrays.
Adjust XmlToArray class to correctly convert numeric values.
This commit fixes #697
Merge pull request #717 from cristianoc72/xml-issue

Fix issue #697
added migrationDir config option
Propel2-710 Propel compatibility with Symfony 2.5 components

added check for LegacyValidator class in order to load the correct Validator classes below SF 2.5 and from 2.5
replaced BufferedOutput with StreamOutput class which is available since SF 2.3
changed symfony requirements to ~2.3

fixes #710