Add ConstantScanner and resolve scanning constants with docblock
Change method getConstants() that now return instance of ConstantScanner
Added methods for verifying if constant or property exists
Update docblocks
Update ClassScanner
OptionalParametersFilter - checks for methods with only optional parameters/no paremeters
Failing test -  ClassMethods cannot extract from getters with optional params
Allowing ClassMethods to also call methods with optional parameters

Fixes test @b47c85e045b185cec8fd6b95b6db2d3d4ddf2a5c
Update RoleInterface.php

RoleInterface should extend RecursiveIterator!
Update method getConstants to avoid BC break
Update DerivedClassScanner and ClassScannerTest
Update StrategyInterface.php

This PR is to implement functionality as detailed in the AbstractHydrator. This should *not* be a BC break.

https://github.com/zendframework/zf2/blob/master/library/Zend/Stdlib/Hydrator/AbstractHydrator.php#L114
https://github.com/zendframework/zf2/blob/master/library/Zend/Stdlib/Hydrator/AbstractHydrator.php#L131
Update StrategyInterface.php
Update StrategyInterface.php

Added todo for version 3.0.
Caching analyzed methods map for performance
Test for OptionalParametersFilter caching functionality
Merge pull request #4539 from spiffyjr/patch-2

Update StrategyInterface.php
Merge branch 'hotfix/4539'

Close #4539
Use the keys of the collectionData to filter against since they don't have to be consecutive
Merge branch 'hotfix/4516'

Close #4516
Merge pull request #4535 from spiffyjr/patch-1

Update RoleInterface.php