[WIP] Di compatibility (#4434)

Relative to #4434
Now we cannot get some instances from the di even if the zf2's simple classes. This PR is a hotfix for it.
And this also enhances the capability to manage dependencies explicitly. But it has a minor BC break. If we should keep BC strictly, remove a5f1362 , b0d918e

## Overview
### METHOD_IS_REQUIRED:
> Resolve dependencies
>  by specified params and TypePreference and name as Class.
> Missing parameter and raise exception

- constructor
- instantiator
- set method option METHOD_IS_REQUIRED or (required => true) explicitly

### METHOD_IS_EAGER:
> Resolve dependencies
>  by specified params and TypePreference and name as Class.
> Missing parameter and give up resolving

- AwareInterface's setter
- set method option METHOD_IS_EAGER explicitly

### METHOD_IS_OPTIONAL:
> Resolve dependencies only by specified params

- setter injection

---------------------------------------
- [x] Add issue reproduce test
- [x] Initial implementation
- [ ] Collect feedback
- [ ] Test coverage