Use DateTime for timestamp field in log event data

Date formatting is now the responsibility of the formatter classes. Writers that do not support a formatter, or those that work with event data outside of FormatterInterface::format(), will be responsible for handling the DateTime object on their own.
Convert DateTime to MongoDate in MongoDB log writer
Use getDateTimeFormat() method in log formatters
Append PHP_EOL to logged lines in Mail and Stream writers

PHP_EOL was previously appended in Simple formatter.
Micro (Really micro) optimization for canonicalizeName
Allows redirects to non-HTTP-URIs

This adds an UriInterface any 3rd-party URI-class has to implement to be
recognised as URI.

Also the UriFactory is now used to create Uri-Objects from URI-strings

The AbstractLocation now checks for an instance of UriInterface instead
of Http-Uri to create a redirect-header. Therefore redirects to
non-HTTP-URIs are possible now.

CAVEAT: This commit changes the ContentLocationTest and the
AbstractLocationTest because they both asserted an instance of
\Zend\Uri\Http when giving a relative URI which can no longer be true.
This might break some behaviour!
Adds unregisterScheme to UriFactory

Now a staticaly registered scheme can be unregistered.
 Fixes unit tests

 UnitTests that asserted an instance of Zend\Uri\http for a relative URI
 now check for Zend\Uri\Uri
Adds URN and TAG-schemes to UriFactory

That way current tests are running. A complete implementation of an
URN-class has to follow
Allowing dependencies to be fetched through service manager instead of controller loader (which makes sense in a context where Di comes from the main service manager itself)
* Include all known IBAN countries with correct validators
* Add more unit tests
* Allow exclusion of non-Sepa countries
Merge branch 'master' of https://github.com/zendframework/zf2 into IbanSepa
Fixes failing DateStepTest on 31. after July

This fixes a strange issue that occures in UnitTests for DateStepTests
on a 31st of August, October or December.

The DataSet 22 of the stepTestsDataProvider contains a format-string for
the DateTime::createFromFormat. DateTime::createFromFormat() will
interpret the given date as January 1970. Due to the fact that the
formating string does not contain an exclamation mark all other values
will be inserted from the current datetime.

So on running the tests on the 6th of March the date will be set to '06'
instead of the expected '01'. THat does not make a difference. It does
make a difference though on the 31st of a month when the target month
for the comparison is September or November as these do not have 31
days. Therefore the created DateTime-Object references the first of the
following month. Therefore a diff now does not contain only a month, but
a month and one day. And therefore the test fails.

The test now uses an exclamation mark and therefore is "padded" with
"01"
Updated Zend\Json\Encoder to accept IteratorAggregate
Merge branch 'fixDateStepTest' of https://github.com/heiglandreas/zf2
Merge branch 'log-formatter' of https://github.com/jmikola/zf2
[#2029] Add ability to specify log separator in stream writer

- Default to PHP_EOL
- Allow specifying separator via setter, constructor argument, or
  constructor options
- Separator is appended to line received from formatter
Merge branch 'performance/sm-canonicalize-name-performance' of https://github.com/Ocramius/zf2
Merge branch 'redirectToAnyScheme' of https://github.com/heiglandreas/zf2
Merge branch 'hotfix/di-abstract-factory-dependencies-fetched-from-sm' of https://github.com/Ocramius/zf2