FIX: hook slim.after is called before response was sent

Signed-off-by: Max-Julian Pogner <max-julian@qyanu.com>
Merge pull request #703 from qyanu/release-2.4.1

FIX: hook slim.after is called before response was sent
Detect circular middleware stacks and throw comprehensible exception.
Merge pull request #715 from marcioAlmada/release-2.4.1

release-2.4.1 Detect circular middleware stacks
always merge settings if 1st parameter is an array
adds the possibility of recursive merging
Clarify apache setup

Adds in a hint for the Apache AllowOverride setup to permit the .htaccess rules to rewrite incoming requests
Duplicate changes provided by jamesmcfadden for develop branch #771 #765
Let \Slim\Http\Util parse cookie values that contain an equal sign. See #774
Fix resolving X-Forwarded-For header

This fixes X-Forwarded-For resolving (HTTP_ prefix). This is fixed
on develop branch difrently. However current behaviour renders
invalid results and IMHO this patch should merged and released
as 2.3.NEXT
Added default value to \Slim\Http\Request::params
Allow all valid characters in function names of getCallableAsClass

This uses the [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* regex as specified by https://php.net/manual/en/functions.user-defined.php

Conflicts:
	tests/RouteTest.php
Lazy-initialize class in \Slim\Route::setCallable()

You don't want to construct all kinds of objects when setting up your routes, so don't initialize those objects until
the route is actually dispatched. Add some basic caching so multiple route dispatches don't result in multiple class
instantiations.
added test
added recursive setting tests
Fix unit tests after merge
Clarify apache setup

Adds in a hint for the Apache AllowOverride setup to permit the .htaccess rules to rewrite incoming requests
Duplicate changes provided by jamesmcfadden for develop branch #771 #765
Let \Slim\Http\Util parse cookie values that contain an equal sign. See #774
Fix resolving X-Forwarded-For header

This fixes X-Forwarded-For resolving (HTTP_ prefix). This is fixed
on develop branch difrently. However current behaviour renders
invalid results and IMHO this patch should merged and released
as 2.3.NEXT