In order to support DevMode with new lifecycle, chaincode endorsement info need to be slightly modified.
As when developer running the DevMode, chaincode will be launched by developer, and it will not be installed and launched by peer. When `CachedChaincodeInfo`, `InstallInfo` will be missing when DevMode is enabled, and this behavior need to be handled and returned correctly.
- Have correct behavior for `CachedChaincodeInfo` and `ChaincodeEndorsementInfo` when DevMode is enabled.
- Have unit test coverage to test behavior of `ChaincodeEndorsementInfoSource` when DevMode is enabled.