Merge branch 'hotfix/4496'

Close #4496
Adds ability to specify a template for exceptions retrieved from Exception::getPrevious
Update Client.php

soapVersion is not reachable, thanks to strtolower($key) :)
View: correctly validate input in PartialLoop

Change the condition to be more safe and intuitive.

Closes #4545
PartialLoop: rewrite input check even better
PartialLoop: simplify check, remove comment
Fix crypt() return value check to match PHP documentation

PHP documentation states:

"Returns the hashed string or a string that is shorter than 13 characters and is
guaranteed to differ from the salt on failure." [1]

Therefore, the check should be looking for a string length "less than 13"
characters rather than "less than or equal to 13" characters.

[1] http://php.net/function.crypt.php
Merge branch 'gwis-fix-crypt-retval-check'
Merge branch 'gwis-fix-crypt-retval-check' into develop
Remove private variables from AbstractControllerTestCase.
Fixing typehint on fluent interface
Update MetadataFeature.php

This minor change enables to use the MetadataFeature being used on Views rather than Tables only. Should be reviewed by author to ensure this is on the right place.
Update MetadataFeature.php

trailing spaces removed
Add test PRG plugin with SegmentRoute having :controller
Fix PRG plugin wrong redirection with SegmentRoute having :controller
Fix generating array with unsorted keys
Use Cypt\Utils::compareStrings() in Zend\Auth

- Replace the duplicate _secureStringCompare() methods from the Http
  and Digest Zend\Authentication adapters with
  Zend\Crypt\Utils::compareStrings().
- Update Zend\Authentication's composer.json to reflect the dependency
  on Zend\Crypt.
- This potentially reduces the risk of a possible Information Disclosure
  vulnerability, where the length of the target string could be
  discovered via a timing attack. At least in the Digest adapter, there
  was no security issue before this patch, as the string lengths for
  both strings are _always_ 32 character MD5 hashes, thus there is no
  unknown string length to disclose. I'm not 100% sure about the Http
  adapter.

Potential vulnerability was responsibly disclosed by @Freeaqingme.
Merge branch 'EvanDotPro-hotfix/zend-auth-duplicate-code'
Merge branch 'EvanDotPro-hotfix/zend-auth-duplicate-code' into develop
Zend\Form - trying to get() a non-existent element should raise an exception