Fix afterFind() called twice with hasMany relationship

It occurs when a model and the children models are related to a same model.
For example, such as the following:

* User hasMany Comment
* User hasMany Article
* Article hasMany Comment
Fix different format of $results in afterFind

Refs #2529

As of this commit, we can get consistent format of $resutls in afterFind.
And we can keep backward compatibility if Model::$useConsistentAfterFind is set to false.
Ignore RuntimeException

RuntimeException is thrown at race condition.
However, since for the processing at Garbage Collection, other processes
is determined that the expired.
this process is acceptable to ignore the RuntimeException even if there is
missing file.
Merge pull request #4304 from mtak3/ignore_exception_cache_file_engine

Ignore RuntimeException
Optimize FileEngine::gc()

SplFileObject constructor throws an exception if the file does not exist or is a directory.
Merge pull request #4322 from majna/master-file-engine

Optimize FileEngine::gc()
HttpSocket: not overwriting auth header if it is set in request configuration
Merge pull request #4331 from jeremyharris/master

Fix HttpSocket multiple auth requests
Preventing multiple iterations
Merge pull request #4353 from karmicdice/patch-1

Prevent infinite loops by rendering a flash element inside a flash element.

Fixes: #4350
Fix 0 index not being properly parsed for files.
Add test for #4309

The Router internals don't handle // which is good.
fix failing testLogError
Merge pull request #4373 from mstra001/master

fix failing testLogError
Fixes #2707

When the first variable argument = null, but there are more arguments given.
Added testcases to show the change (to fail before the fix)
Merge pull request #4366 from hmic/ticket#2707

Fixed i18n __*() bug
Adding a Readme and a composer.json for the Event library
Add the ability to add automatic fields.

When selecting specific fields (such as computed fields) it is often
really helpful to also select all the fields in the model. Instead of
having to type out all the columns in the schema, the autoFields()
method can be used to tell an ORM\Query to also include the automatic
fields. This new method also works in contain() builders.

Refs #4360
Clean up code a bit.

Remove bonus ternary and array modification.
Fix tests for Database quoting situation.